From 8a4aa619e418fb0d3804c335bd7a05e86280e9a5 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Tue, 23 Jan 2024 12:36:50 +0100 Subject: =?UTF-8?q?Fix=20"Wrong=20tooltip=20position=20on=20Wayland=20?= =?UTF-8?q?=E2=80=A6"=20-=20cont'd=20(#894)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Fl_Tooltip.cxx | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/Fl_Tooltip.cxx b/src/Fl_Tooltip.cxx index 821e95158..5ae23f0ad 100644 --- a/src/Fl_Tooltip.cxx +++ b/src/Fl_Tooltip.cxx @@ -96,20 +96,20 @@ void Fl_TooltipBox::layout() { for (Fl_Widget* p = Fl_Tooltip::current(); p; p = p->window()) { oy += p->y(); } + int scr_x = -100000, scr_y = -100000, scr_w = 1000000, scr_h = 1000000; 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; + 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; + resize(ox, oy, ww, hh); } -- cgit v1.2.3