From da8d6c8d77ba848c9ad2bebc44309f422bb5e656 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Tue, 23 Jan 2024 10:40:25 +0100 Subject: Fix "Wrong tooltip position on Wayland with secondary monitor" (#894) --- src/Fl_Tooltip.cxx | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/Fl_Tooltip.cxx b/src/Fl_Tooltip.cxx index 992ac3f2c..821e95158 100644 --- a/src/Fl_Tooltip.cxx +++ b/src/Fl_Tooltip.cxx @@ -96,17 +96,19 @@ void Fl_TooltipBox::layout() { for (Fl_Widget* p = Fl_Tooltip::current(); p; p = p->window()) { oy += p->y(); } - int scr_x, scr_y, scr_w, scr_h; - Fl::screen_xywh(scr_x, scr_y, scr_w, scr_h); - if (ox+ww > scr_x+scr_w) ox = scr_x+scr_w - ww; - if (ox < scr_x) ox = scr_x; - if (currentTooltipH > 30) { - oy = Fl::event_y_root()+13; - if (oy+hh > scr_y+scr_h) oy -= 23+hh; - } else { - if (oy+hh > scr_y+scr_h) oy -= (4+hh+currentTooltipH); + if (!Fl_Window_Driver::driver(this)->popup_window()) { + int scr_x, scr_y, scr_w, scr_h; + Fl::screen_xywh(scr_x, scr_y, scr_w, scr_h); + if (ox+ww > scr_x+scr_w) ox = scr_x+scr_w - ww; + if (ox < scr_x) ox = scr_x; + if (currentTooltipH > 30) { + oy = Fl::event_y_root()+13; + if (oy+hh > scr_y+scr_h) oy -= 23+hh; + } else { + if (oy+hh > scr_y+scr_h) oy -= (4+hh+currentTooltipH); + } + if (oy < scr_y) oy = scr_y; } - if (oy < scr_y) oy = scr_y; resize(ox, oy, ww, hh); } -- cgit v1.2.3