comparison gtk4/dw.c @ 2303:cdd8459add40

GTK4: Add code to setup the toplevel menu for popups.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 09 Feb 2021 03:25:09 +0000
parents 785775b9002f
children ae6f678cb1a9
comparison
equal deleted inserted replaced
2302:785775b9002f 2303:cdd8459add40
2579 { 2579 {
2580 GtkWidget *tmp = gtk_popover_menu_new_from_model_full(G_MENU_MODEL(*menu), GTK_POPOVER_MENU_NESTED); 2580 GtkWidget *tmp = gtk_popover_menu_new_from_model_full(G_MENU_MODEL(*menu), GTK_POPOVER_MENU_NESTED);
2581 GdkRectangle rect = { x, y, 1, 1 }; 2581 GdkRectangle rect = { x, y, 1, 1 };
2582 2582
2583 gtk_widget_set_parent(tmp, GTK_WIDGET(parent)); 2583 gtk_widget_set_parent(tmp, GTK_WIDGET(parent));
2584 if(!g_object_get_data(G_OBJECT(*menu), "_dw_menuparent"))
2585 {
2586 int menugroup = DW_POINTER_TO_INT(g_object_get_data(G_OBJECT(*menu), "_dw_menugroup"));
2587 GSimpleActionGroup *group = g_object_get_data(G_OBJECT(*menu), "_dw_group");
2588 char tempbuf[25] = {0};
2589
2590 snprintf(tempbuf, 24, "menu%d", menugroup);
2591
2592 gtk_widget_insert_action_group(GTK_WIDGET(tmp), tempbuf, G_ACTION_GROUP(group));
2593 g_object_set_data(G_OBJECT(*menu), "_dw_menuparent", (gpointer)tmp);
2594 }
2584 _dw_menu_set_group_recursive(*menu, GTK_WIDGET(tmp)); 2595 _dw_menu_set_group_recursive(*menu, GTK_WIDGET(tmp));
2585 gtk_popover_set_autohide(GTK_POPOVER(tmp), TRUE); 2596 gtk_popover_set_autohide(GTK_POPOVER(tmp), TRUE);
2586 gtk_popover_set_has_arrow (GTK_POPOVER(tmp), FALSE); 2597 gtk_popover_set_has_arrow (GTK_POPOVER(tmp), FALSE);
2587 gtk_popover_set_pointing_to(GTK_POPOVER(tmp), &rect); 2598 gtk_popover_set_pointing_to(GTK_POPOVER(tmp), &rect);
2588 g_signal_connect(G_OBJECT(tmp), "closed", G_CALLBACK(_dw_popover_menu_closed), (gpointer)parent); 2599 g_signal_connect(G_OBJECT(tmp), "closed", G_CALLBACK(_dw_popover_menu_closed), (gpointer)parent);