]> Pileus Git - ~andy/gtk/commitdiff
gtk: ref the action around gtk_action_emit_activate()
authorMichael Natterer <mitch@gimp.org>
Fri, 3 Aug 2012 21:24:39 +0000 (23:24 +0200)
committerMichael Natterer <mitch@gimp.org>
Fri, 3 Aug 2012 21:28:05 +0000 (23:28 +0200)
for the same reason we already ref the action's group in the function.
(cherry picked from commit ebe50bbecba1d4797853134add2cb37baa13092e)

gtk/gtkaction.c

index fe5336228dbd152eed03eabb2637e324850bd1c8..6bb0ae9d7b6eb3a07063bf6d4fb70f515aa56e48 100644 (file)
@@ -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);
     }
 }