diff --git a/gtk/gtkaction.c b/gtk/gtkaction.c index fe5336228d..6bb0ae9d7b 100644 --- a/gtk/gtkaction.c +++ b/gtk/gtkaction.c @@ -791,18 +791,20 @@ _gtk_action_emit_activate (GtkAction *action) { GtkActionGroup *group = action->private_data->action_group; - if (group != NULL) + if (group != NULL) { + g_object_ref (action); g_object_ref (group); _gtk_action_group_emit_pre_activate (group, action); } - g_signal_emit (action, action_signals[ACTIVATE], 0); + g_signal_emit (action, action_signals[ACTIVATE], 0); - if (group != NULL) + if (group != NULL) { _gtk_action_group_emit_post_activate (group, action); g_object_unref (group); + g_object_unref (action); } }