changeset 2302:785775b9002f

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.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 09 Feb 2021 00:34:17 +0000
parents 69b06073a87d
children cdd8459add40
files gtk4/dw.c
diffstat 1 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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;