diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-02-20 21:47:43 +0100 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-02-20 21:47:43 +0100 |
| commit | 681e22a4529b2d3e36c8fda87a015e82dd80f0fe (patch) | |
| tree | 63073f98021ae1e9a7a9eeb438ea70400625aaf8 | |
| parent | 69d7991acc36981e2f2342444fcf46736ed1a517 (diff) | |
Add scale_handler first so it has least priority of all handlers
| -rw-r--r-- | src/Fl_Screen_Driver.cxx | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Fl_Screen_Driver.cxx b/src/Fl_Screen_Driver.cxx index 048ffd676..1839c76dd 100644 --- a/src/Fl_Screen_Driver.cxx +++ b/src/Fl_Screen_Driver.cxx @@ -558,18 +558,22 @@ void Fl_Screen_Driver::use_startup_scale_factor() void Fl_Screen_Driver::open_display() { - open_display_platform(); static bool been_here = false; + // Add scale_handler first so it has least priority of all handlers + if (!been_here) Fl::add_handler(Fl_Screen_Driver::scale_handler); + open_display_platform(); if (!been_here) { been_here = true; + bool keep_scale_handler = false; if (rescalable()) { use_startup_scale_factor(); if (keyboard_screen_scaling && rescalable()) - Fl::add_handler(Fl_Screen_Driver::scale_handler); + keep_scale_handler = true; int mx, my; int ns = Fl::screen_driver()->get_mouse(mx, my); Fl_Graphics_Driver::default_driver().scale(scale(ns)); } + if (!keep_scale_handler) Fl::remove_handler(Fl_Screen_Driver::scale_handler); } } |
