# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1612830857 0 # Node ID 785775b9002f24939a58e62b65cfab4e6f380b50 # Parent 69b06073a87d008d9800a465d11abc7c0e59f8df GTK4: Use gtk_popover_set_pointing_to() to position the popover instead of gtk_popover_set_offset(). Still not perfect, might need to make it window relative instead of desktop relative. diff -r 69b06073a87d -r 785775b9002f gtk4/dw.c --- a/gtk4/dw.c Mon Feb 08 23:07:52 2021 +0000 +++ b/gtk4/dw.c Tue Feb 09 00:34:17 2021 +0000 @@ -2578,13 +2578,13 @@ if(menu && *menu && G_MENU(*menu)) { GtkWidget *tmp = gtk_popover_menu_new_from_model_full(G_MENU_MODEL(*menu), GTK_POPOVER_MENU_NESTED); + GdkRectangle rect = { x, y, 1, 1 }; gtk_widget_set_parent(tmp, GTK_WIDGET(parent)); _dw_menu_set_group_recursive(*menu, GTK_WIDGET(tmp)); gtk_popover_set_autohide(GTK_POPOVER(tmp), TRUE); -#if 0 - gtk_popover_set_offset(GTK_POPOVER(tmp), x, y); -#endif + gtk_popover_set_has_arrow (GTK_POPOVER(tmp), FALSE); + gtk_popover_set_pointing_to(GTK_POPOVER(tmp), &rect); g_signal_connect(G_OBJECT(tmp), "closed", G_CALLBACK(_dw_popover_menu_closed), (gpointer)parent); gtk_popover_popup(GTK_POPOVER(tmp)); *menu = NULL;