diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2017-03-06 18:03:55 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2017-03-06 18:27:27 +0000 |
commit | a62a03715f831d195e2acbd66957716218a2bfd3 (patch) | |
tree | 8b77dae37e3759dfdea2ac08b04a594061525ad0 | |
parent | 1163ed404c64ac2cecf082f2034442a352d69e0f (diff) | |
download | gnome-dictionary-a62a03715f831d195e2acbd66957716218a2bfd3.tar.gz |
Use gtk_menu_popup_at_widget() with newer GTK+
The gtk_menu_popup() function has been deprecated in favour of API that
does not require global coordinate positioning.
-rw-r--r-- | src/gdict-sidebar.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/gdict-sidebar.c b/src/gdict-sidebar.c index f0b40c8..bccb89d 100644 --- a/src/gdict-sidebar.c +++ b/src/gdict-sidebar.c @@ -136,6 +136,8 @@ gdict_sidebar_dispose (GObject *object) G_OBJECT_CLASS (gdict_sidebar_parent_class)->dispose (object); } +#if !GTK_CHECK_VERSION (3, 22, 0) +/* We only use this with older versions of GTK+ */ static void gdict_sidebar_menu_position_function (GtkMenu *menu, gint *x, @@ -158,6 +160,7 @@ gdict_sidebar_menu_position_function (GtkMenu *menu, *push_in = FALSE; } +#endif /* !GTK_CHECK_VERSION (3, 22, 0) */ static gboolean gdict_sidebar_select_button_press_cb (GtkWidget *widget, @@ -181,10 +184,19 @@ gdict_sidebar_select_button_press_cb (GtkWidget *widget, gtk_widget_grab_focus (widget); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); + +#if GTK_CHECK_VERSION (3, 22, 0) + gtk_menu_popup_at_widget (GTK_MENU (sidebar->priv->menu), + widget, + GDK_GRAVITY_SOUTH_WEST, + GDK_GRAVITY_NORTH_WEST, + (GdkEvent *) event); +#else gtk_menu_popup (GTK_MENU (sidebar->priv->menu), NULL, NULL, gdict_sidebar_menu_position_function, widget, event->button, event->time); +#endif return TRUE; } @@ -205,10 +217,19 @@ gdict_sidebar_select_key_press_cb (GtkWidget *widget, event->keyval == GDK_KEY_KP_Enter) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); + +#if GTK_CHECK_VERSION (3, 22, 0) + gtk_menu_popup_at_widget (GTK_MENU (sidebar->priv->menu), + widget, + GDK_GRAVITY_SOUTH_WEST, + GDK_GRAVITY_NORTH_WEST, + (GdkEvent *) event); +#else gtk_menu_popup (GTK_MENU (sidebar->priv->menu), NULL, NULL, gdict_sidebar_menu_position_function, widget, 1, event->time); +#endif return TRUE; } |