Mercurial > dwindows
comparison gtk3/dw.c @ 1931:3a5571255ee6
GTK3: dw_menu_popup() on GTK has always ignored the coordinate paramaters
and just created the menu where the cursor was. A new API
gtk_menu_popup_at_rect() was created to use a rectangle to place the menu,
so I had tried to use that... however either it does not work right or I
don't understand how to call it. So I have switched to
gtk_menu_popup_at_pointer() to stay consistent with the old behavior for
now.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 02 Jun 2017 23:37:45 +0000 |
parents | fe04bcfd5b65 |
children | 758f49e54566 |
comparison
equal
deleted
inserted
replaced
1930:fe04bcfd5b65 | 1931:3a5571255ee6 |
---|---|
3684 | 3684 |
3685 popup = parent; | 3685 popup = parent; |
3686 | 3686 |
3687 DW_MUTEX_LOCK; | 3687 DW_MUTEX_LOCK; |
3688 #if GTK_CHECK_VERSION(3,22,0) | 3688 #if GTK_CHECK_VERSION(3,22,0) |
3689 GdkRectangle rc = { x, y, 1, 1 }; | 3689 gtk_menu_popup_at_pointer(GTK_MENU(*menu), NULL); |
3690 gtk_menu_popup_at_rect(GTK_MENU(*menu), gtk_widget_get_window(parent), | |
3691 &rc, GDK_GRAVITY_CENTER, GDK_GRAVITY_CENTER, NULL); | |
3692 #else | 3690 #else |
3693 gtk_menu_popup(GTK_MENU(*menu), NULL, NULL, NULL, NULL, 1, GDK_CURRENT_TIME); | 3691 gtk_menu_popup(GTK_MENU(*menu), NULL, NULL, NULL, NULL, 1, GDK_CURRENT_TIME); |
3694 #endif | 3692 #endif |
3695 *menu = NULL; | 3693 *menu = NULL; |
3696 DW_MUTEX_UNLOCK; | 3694 DW_MUTEX_UNLOCK; |