summaryrefslogtreecommitdiff
path: root/src/libnma/nma-ui-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnma/nma-ui-utils.c')
-rw-r--r--src/libnma/nma-ui-utils.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/libnma/nma-ui-utils.c b/src/libnma/nma-ui-utils.c
index cca10be8..7a4e6770 100644
--- a/src/libnma/nma-ui-utils.c
+++ b/src/libnma/nma-ui-utils.c
@@ -219,14 +219,32 @@ nma_gtk_widget_activate_default (GtkWidget *widget)
static void
icon_release_cb (GtkEntry *entry,
GtkEntryIconPosition position,
+#if !GTK_CHECK_VERSION(3,90,0)
GdkEventButton *event,
+#endif
gpointer data)
{
GtkMenu *menu = GTK_MENU (data);
+#if GTK_CHECK_VERSION(3,90,0)
+ GdkRectangle icon_area;
+#endif
+
if (position == GTK_ENTRY_ICON_SECONDARY) {
- gtk_widget_show_all (GTK_WIDGET (data));
+ gtk_widget_show (GTK_WIDGET (data));
+#if GTK_CHECK_VERSION(3,90,0)
+ gtk_entry_get_icon_area (entry,
+ GTK_ENTRY_ICON_SECONDARY,
+ &icon_area);
+ gtk_menu_popup_at_rect (menu,
+ gtk_widget_get_surface (GTK_WIDGET (entry)),
+ &icon_area,
+ GDK_GRAVITY_CENTER,
+ GDK_GRAVITY_CENTER,
+ NULL);
+#else
gtk_menu_popup (menu, NULL, NULL, NULL, NULL,
event->button, event->time);
+#endif
}
}