diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-01-23 12:36:50 +0100 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-01-23 12:36:50 +0100 |
| commit | 8a4aa619e418fb0d3804c335bd7a05e86280e9a5 (patch) | |
| tree | 826a402fc2c0dd4c28076e841692f3a176e91fb8 /src | |
| parent | da8d6c8d77ba848c9ad2bebc44309f422bb5e656 (diff) | |
Fix "Wrong tooltip position on Wayland …" - cont'd (#894)
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Tooltip.cxx | 24 |
1 files changed, 12 insertions, 12 deletions
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); } |
