diff options
Diffstat (limited to 'src/libnma/nma-ui-utils.c')
-rw-r--r-- | src/libnma/nma-ui-utils.c | 20 |
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 } } |