[gtk+/wip/attach-params-pass-event: 11/15] 99db2f96 gtkmenu remove unnecessary ref sinking



commit c4b4fc2535698f49897dcb5b968da0be883289f5
Author: William Hua <william hua canonical com>
Date:   Wed Feb 17 18:46:29 2016 -0500

    99db2f96 gtkmenu remove unnecessary ref sinking

 gtk/gtkmenu.c |   27 ++++++++++-----------------
 1 files changed, 10 insertions(+), 17 deletions(-)
---
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
index 2b3c835..2343173 100644
--- a/gtk/gtkmenu.c
+++ b/gtk/gtkmenu.c
@@ -1564,14 +1564,6 @@ gtk_menu_popup_internal (GtkMenu             *menu,
   GdkDevice *source_device = NULL;
   GdkDisplay *display;
 
-  if (params)
-    {
-      g_object_ref_sink (params);
-
-      if (!GTK_IS_MENU (menu) || (seat && !GDK_IS_SEAT (seat)))
-        g_clear_object (&params);
-    }
-
   g_return_if_fail (GTK_IS_MENU (menu));
   g_return_if_fail (!seat || GDK_IS_SEAT (seat));
 
@@ -1681,7 +1673,12 @@ gtk_menu_popup_internal (GtkMenu             *menu,
       menu_grab_transfer_window_destroy (menu);
 
       g_clear_object (&pointer);
-      g_clear_object (&params);
+
+      if (params)
+        {
+          g_object_ref_sink (params);
+          g_object_unref (params);
+        }
 
       return;
     }
@@ -1736,8 +1733,10 @@ gtk_menu_popup_internal (GtkMenu             *menu,
   priv->position_func_data_destroy = destroy;
   menu_shell->priv->activate_time = activate_time;
 
-  g_set_object (&priv->attach_params, params);
-  g_clear_object (&params);
+  g_clear_object (&priv->attach_params);
+
+  if (params)
+    priv->attach_params = g_object_ref_sink (params);
 
   /* We need to show the menu here rather in the init function
    * because code expects to be able to tell if the menu is onscreen
@@ -1944,12 +1943,6 @@ gtk_menu_popup_with_params (GtkMenu           *menu,
   gint x;
   gint y;
 
-  if (!GTK_IS_MENU (menu) && params)
-    {
-      g_object_ref_sink (params);
-      g_clear_object (&params);
-    }
-
   g_return_if_fail (GTK_IS_MENU (menu));
 
   if (seat)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]