From 1e769f44b4937ae12d6da6778c4093ac3a56bacb Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Thu, 6 Nov 2025 00:14:10 +0100 Subject: [PATCH] Fix "Long Tooltips can crash under Wayland" (#1317) --- src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx index cd4232021..32fdd0953 100644 --- a/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx @@ -221,6 +221,7 @@ static void pointer_enter(void *data, struct wl_pointer *wl_pointer, uint32_t se } } if (!win) return; + seat->pointer_focus = surface; // use custom cursor if present struct wl_cursor *cursor = fl_wl_xid(win)->custom_cursor ? fl_wl_xid(win)->custom_cursor->wl_cursor : NULL; @@ -228,9 +229,9 @@ static void pointer_enter(void *data, struct wl_pointer *wl_pointer, uint32_t se seat->serial = serial; seat->pointer_enter_serial = serial; set_event_xy(win); + // Caution: with an Fl_Tooltip this call can hide the window being entered (#1317) Fl::handle(FL_ENTER, win); //fprintf(stderr, "pointer_enter window=%p\n", win); - seat->pointer_focus = surface; }