diff options
author | William Hua <william.hua@canonical.com> | 2016-02-18 10:10:25 -0500 |
---|---|---|
committer | William Hua <william.hua@canonical.com> | 2016-02-18 10:32:58 -0500 |
commit | 2e683121b07c0f9c09142b5e9d5f59d986c27c0e (patch) | |
tree | 709840be4210f6c48d0bfd015782ec8f442ae502 | |
parent | 4bede1788293119ca02fb5f1fc0bf19ff0c956ff (diff) | |
download | gtk+-wip/attach-params-pass-event.tar.gz |
gtkmenuwip/attach-params-pass-event
-rw-r--r-- | gtk/gtkmenu.c | 14 |
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 (¶ms); 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 |