diff --git a/gtk/gtkaction.c b/gtk/gtkaction.c index 504e09baff..ff4e751da1 100644 --- a/gtk/gtkaction.c +++ b/gtk/gtkaction.c @@ -785,18 +785,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); } }