summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2025-11-05 21:10:18 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2025-11-05 21:10:18 +0100
commitd8df24a2ea221cfe65a4352e17d9a4f8a3442243 (patch)
tree3650a629fc897b2de216dd8d5b19df104ef66263 /src/drivers
parentf2db90cb77466d6720c348be78e491a7d00c9e8c (diff)
Fix "Long Tooltips can crash under Wayland" (#1317)
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx3
1 files changed, 2 insertions, 1 deletions
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;
}