From ec7dbed3267d1e026c37439c46ed2c89d902fd3a Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Sun, 26 Jul 2026 15:51:09 +0200 Subject: [PATCH] Fix "Wayland: Tooltip at bottom right screen flickers" (#1543) --- src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx index af6fc1ec9..b9db671cf 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx @@ -1444,6 +1444,15 @@ bool Fl_Wayland_Window_Driver::process_menu_or_tooltip(struct wld_window *new_wi } xdg_positioner_set_constraint_adjustment(positioner, constraint); } + if (pWindow->tooltip_window()) { + xdg_positioner_set_constraint_adjustment(positioner, + XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_SLIDE_X | + XDG_POSITIONER_CONSTRAINT_ADJUSTMENT_FLIP_Y); + int dummy, scr_H; + Fl::screen_xywh(dummy, dummy, dummy, scr_H); + popup_y = Fl::event_y(); + if (popup_y + pWindow->h() > scr_H) popup_y--; + } if (!(Fl_Window_Driver::menu_title(pWindow) && Fl_Window_Driver::menu_bartitle(pWindow))) { xdg_positioner_set_offset(positioner, 0, popup_y); }