diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-03-01 11:11:15 +0100 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-03-01 11:11:15 +0100 |
| commit | 0eef561e7b9bf54b764e7e7254b98530aac5384f (patch) | |
| tree | 09755aca065c60ee7f7a2a1f430841f640221765 /src/Fl.cxx | |
| parent | 5f2069871d00575717d998a2e1e3d398ec9137ef (diff) | |
Windows: make Ctrl/+/-/0/ scaling system-wide if all screens have same DPI
Diffstat (limited to 'src/Fl.cxx')
| -rw-r--r-- | src/Fl.cxx | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/Fl.cxx b/src/Fl.cxx index c9a2972d2..dcf4be3bc 100644 --- a/src/Fl.cxx +++ b/src/Fl.cxx @@ -2266,8 +2266,13 @@ float Fl::screen_scale(int n) { Also sets the scale factor value of all windows mapped to screen number \p n, if any. */ void Fl::screen_scale(int n, float factor) { - if (!Fl::screen_scaling_supported() || n < 0 || n >= Fl::screen_count()) return; - Fl::screen_driver()->rescale_all_windows_from_screen(n, factor); + Fl_Screen_Driver::APP_SCALING_CAPABILITY capability = Fl::screen_driver()->rescalable(); + if (!capability || n < 0 || n >= Fl::screen_count()) return; + if (capability == Fl_Screen_Driver::SYSTEMWIDE_APP_SCALING) { + for (int s = 0; s < Fl::screen_count(); s++) { + Fl::screen_driver()->rescale_all_windows_from_screen(s, factor); + } + } else Fl::screen_driver()->rescale_all_windows_from_screen(n, factor); } /** |
