mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 06:00:22 +00:00
GActionMuxer: disconnect group signals on finalize
The signals for the action group were being disconnected when the action group was explicitly removed from the GActionMuxer but the same was not being done when it was finalized. This means that a change in the state of an action group that used to be associated with a finalized GActionMuxer would result in a crash. This would happen for stateful application actions after closing a window.
This commit is contained in:
parent
6f86bd5f0c
commit
6e11c3106a
@ -352,6 +352,11 @@ static void
|
||||
g_action_muxer_free_group (gpointer data)
|
||||
{
|
||||
Group *group = data;
|
||||
gint i;
|
||||
|
||||
/* 'for loop' or 'four loop'? */
|
||||
for (i = 0; i < 4; i++)
|
||||
g_signal_handler_disconnect (group->group, group->handler_ids[i]);
|
||||
|
||||
g_object_unref (group->group);
|
||||
g_free (group->prefix);
|
||||
@ -485,10 +490,6 @@ g_action_muxer_remove (GActionMuxer *muxer,
|
||||
g_action_muxer_action_removed (group->group, actions[i], group);
|
||||
g_strfreev (actions);
|
||||
|
||||
/* 'for loop' or 'four loop'? */
|
||||
for (i = 0; i < 4; i++)
|
||||
g_signal_handler_disconnect (group->group, group->handler_ids[i]);
|
||||
|
||||
g_action_muxer_free_group (group);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user