summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2017-03-06 18:03:55 +0000
committerEmmanuele Bassi <ebassi@gnome.org>2017-03-06 18:27:27 +0000
commita62a03715f831d195e2acbd66957716218a2bfd3 (patch)
tree8b77dae37e3759dfdea2ac08b04a594061525ad0
parent1163ed404c64ac2cecf082f2034442a352d69e0f (diff)
downloadgnome-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.c21
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;
}