summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Hua <william.hua@canonical.com>2016-02-18 10:10:25 -0500
committerWilliam Hua <william.hua@canonical.com>2016-02-18 10:32:58 -0500
commit2e683121b07c0f9c09142b5e9d5f59d986c27c0e (patch)
tree709840be4210f6c48d0bfd015782ec8f442ae502
parent4bede1788293119ca02fb5f1fc0bf19ff0c956ff (diff)
downloadgtk+-wip/attach-params-pass-event.tar.gz
-rw-r--r--gtk/gtkmenu.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
index a11c7999fd..90275c10fc 100644
--- a/gtk/gtkmenu.c
+++ b/gtk/gtkmenu.c
@@ -1567,6 +1567,9 @@ gtk_menu_popup_internal (GtkMenu *menu,
g_return_if_fail (GTK_IS_MENU (menu));
g_return_if_fail (!seat || GDK_IS_SEAT (seat));
+ if (params)
+ g_object_ref_sink (params);
+
if (!seat)
{
current_event = gtk_get_current_event ();
@@ -1673,12 +1676,7 @@ gtk_menu_popup_internal (GtkMenu *menu,
menu_grab_transfer_window_destroy (menu);
g_clear_object (&pointer);
-
- if (params)
- {
- g_object_ref_sink (params);
- g_object_unref (params);
- }
+ g_clear_object (&params);
return;
}
@@ -1734,9 +1732,7 @@ gtk_menu_popup_internal (GtkMenu *menu,
menu_shell->priv->activate_time = activate_time;
g_clear_object (&priv->attach_params);
-
- if (params)
- priv->attach_params = g_object_ref_sink (params);
+ priv->attach_params = 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