From d8df24a2ea221cfe65a4352e17d9a4f8a3442243 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Wed, 5 Nov 2025 21:10:18 +0100 Subject: Fix "Long Tooltips can crash under Wayland" (#1317) --- src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/drivers/Wayland') diff --git a/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx index 8bae05c42..340d92051 100644 --- a/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx @@ -219,6 +219,7 @@ static void pointer_enter(void *data, struct wl_pointer *wl_pointer, uint32_t se } if (!win) return; //fprintf(stderr, "pointer_enter window=%p\n", Fl_Wayland_Window_Driver::surface_to_window(surface)); + 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,8 +229,8 @@ static void pointer_enter(void *data, struct wl_pointer *wl_pointer, uint32_t se set_event_xy(win); need_leave = NULL; win = Fl_Wayland_Window_Driver::surface_to_window(surface); + // Caution: with an Fl_Tooltip this call can hide the window being entered (#1317) if (!win->parent()) Fl::handle(FL_ENTER, win); - seat->pointer_focus = surface; } -- cgit v1.2.3