Mercurial > dwindows
comparison gtk4/dw.c @ 2299:27c20fa1615e
GTK4: Fix a crash while trying to create a popup menu...
The popup menu still doesn't work... getting an error about needing to call
gtk_widget_measure() ... but it prevents the crash at least until I can
figure out what is wrong.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 08 Feb 2021 09:53:37 +0000 |
parents | 2a208d5400c5 |
children | 6e47d510dbbb |
comparison
equal
deleted
inserted
replaced
2298:1cffb66cf7b8 | 2299:27c20fa1615e |
---|---|
2555 */ | 2555 */ |
2556 void dw_menu_popup(HMENUI *menu, HWND parent, int x, int y) | 2556 void dw_menu_popup(HMENUI *menu, HWND parent, int x, int y) |
2557 { | 2557 { |
2558 if(menu && *menu && G_MENU(*menu)) | 2558 if(menu && *menu && G_MENU(*menu)) |
2559 { | 2559 { |
2560 GtkWidget *popover = gtk_popover_new(); | |
2561 GtkWidget *tmp = gtk_popover_menu_new_from_model_full(G_MENU_MODEL(*menu), GTK_POPOVER_MENU_NESTED); | 2560 GtkWidget *tmp = gtk_popover_menu_new_from_model_full(G_MENU_MODEL(*menu), GTK_POPOVER_MENU_NESTED); |
2562 | 2561 |
2562 gtk_widget_set_parent(tmp, GTK_WIDGET(parent)); | |
2563 _dw_menu_set_group_recursive(*menu, GTK_WIDGET(tmp)); | 2563 _dw_menu_set_group_recursive(*menu, GTK_WIDGET(tmp)); |
2564 gtk_popover_set_child(GTK_POPOVER(popover), GTK_WIDGET(tmp)); | 2564 gtk_popover_set_offset(GTK_POPOVER(tmp), x, y); |
2565 gtk_popover_set_offset(GTK_POPOVER(popover), x, y); | 2565 gtk_popover_set_autohide(GTK_POPOVER(tmp), TRUE); |
2566 gtk_popover_set_autohide(GTK_POPOVER(popover), TRUE); | 2566 gtk_popover_popup(GTK_POPOVER(tmp)); |
2567 gtk_popover_popup(GTK_POPOVER(popover)); | |
2568 *menu = NULL; | 2567 *menu = NULL; |
2569 } | 2568 } |
2570 } | 2569 } |
2571 | 2570 |
2572 | 2571 |