# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1612841109 0 # Node ID cdd8459add40c6a5e2983ea68d8c4410123519d7 # Parent 785775b9002f24939a58e62b65cfab4e6f380b50 GTK4: Add code to setup the toplevel menu for popups. diff -r 785775b9002f -r cdd8459add40 gtk4/dw.c --- a/gtk4/dw.c Tue Feb 09 00:34:17 2021 +0000 +++ b/gtk4/dw.c Tue Feb 09 03:25:09 2021 +0000 @@ -2581,6 +2581,17 @@ GdkRectangle rect = { x, y, 1, 1 }; gtk_widget_set_parent(tmp, GTK_WIDGET(parent)); + if(!g_object_get_data(G_OBJECT(*menu), "_dw_menuparent")) + { + int menugroup = DW_POINTER_TO_INT(g_object_get_data(G_OBJECT(*menu), "_dw_menugroup")); + GSimpleActionGroup *group = g_object_get_data(G_OBJECT(*menu), "_dw_group"); + char tempbuf[25] = {0}; + + snprintf(tempbuf, 24, "menu%d", menugroup); + + gtk_widget_insert_action_group(GTK_WIDGET(tmp), tempbuf, G_ACTION_GROUP(group)); + g_object_set_data(G_OBJECT(*menu), "_dw_menuparent", (gpointer)tmp); + } _dw_menu_set_group_recursive(*menu, GTK_WIDGET(tmp)); gtk_popover_set_autohide(GTK_POPOVER(tmp), TRUE); gtk_popover_set_has_arrow (GTK_POPOVER(tmp), FALSE);