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