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