From 0eef561e7b9bf54b764e7e7254b98530aac5384f Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Fri, 1 Mar 2024 11:11:15 +0100 Subject: Windows: make Ctrl/+/-/0/ scaling system-wide if all screens have same DPI --- src/Fl.cxx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/Fl.cxx') 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); } /** -- cgit v1.2.3