From 2fbf5bed0db2aec0ef6462d58150a40064f0333b Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Sun, 21 Jan 2024 08:30:49 +0100 Subject: Fix "Wayland: crash with set_menu_window()" (#892) Fixes also a similar crash occuring after use of set_tooltip_window(). Two bool member variables are added to class Fl_Window_Driver to indicate true FLTK menu windows (i.e., created by Fl_Menu_Item::pulldown()) and true FLTK tooltip windows (i.e., Fl_Tooltip). --- src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/drivers') diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx index 9b04779cb..7bdf30f2b 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx @@ -1394,12 +1394,13 @@ void Fl_Wayland_Window_Driver::makeWindow() // put transient scale win at center of top window by making it a tooltip of top Fl_Screen_Driver::transient_scale_parent = Fl::first_window(); pWindow->set_tooltip_window(); + fltk_tooltip_window = true; pWindow->position( (Fl_Screen_Driver::transient_scale_parent->w() - pWindow->w())/2 , (Fl_Screen_Driver::transient_scale_parent->h() - pWindow->h())/2); } - if (pWindow->menu_window() || pWindow->tooltip_window()) { // a menu window or tooltip + if (fltk_menu_window || fltk_tooltip_window) { // a menu window or tooltip is_floatingtitle = process_menu_or_tooltip(new_window); } else if (pWindow->border() && !pWindow->parent() ) { // a decorated window -- cgit v1.2.3