Mercurial > dwindows
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;