Skip to content

Commit

Permalink
gio: Use weak reference to ActionMap when adding action entries
Browse files Browse the repository at this point in the history
Otherwise it is not possible to drop the ActionMap without
dropping the actions first.
  • Loading branch information
zecakeh authored and sdroege committed Nov 1, 2023
1 parent 9225094 commit 15327b7
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions gio/src/action_map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ pub trait ActionMapExtManual: sealed::Sealed + IsA<ActionMap> {
};
let action_map = self.as_ref();
if let Some(callback) = entry.activate {
action.connect_activate(clone!(@strong action_map => move |action, state| {
action.connect_activate(clone!(@weak action_map => move |action, state| {
// safe to unwrap as O: IsA<ActionMap>
callback(action_map.downcast_ref::<Self>().unwrap(), action, state);
}));
}
if let Some(callback) = entry.change_state {
action.connect_change_state(clone!(@strong action_map => move |action, state| {
action.connect_change_state(clone!(@weak action_map => move |action, state| {
// safe to unwrap as O: IsA<ActionMap>
callback(action_map.downcast_ref::<Self>().unwrap(), action, state);
}));
Expand Down

0 comments on commit 15327b7

Please sign in to comment.