summaryrefslogtreecommitdiff
path: root/src/drivers/WinAPI
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/WinAPI')
-rw-r--r--src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.H5
-rw-r--r--src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx9
-rw-r--r--src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx4
3 files changed, 8 insertions, 10 deletions
diff --git a/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.H b/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.H
index 682afca25..628fc9511 100644
--- a/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.H
+++ b/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.H
@@ -61,7 +61,6 @@ public:
virtual void screen_xywh(int &X, int &Y, int &W, int &H, int n);
virtual void screen_dpi(float &h, float &v, int n=0);
int screen_num_unscaled(int x, int y);
- float DWM_scaling_factor(int screen_num);
virtual void screen_work_area(int &X, int &Y, int &W, int &H, int n);
// --- audible output
virtual void beep(int type);
@@ -92,14 +91,14 @@ public:
virtual APP_SCALING_CAPABILITY rescalable() {
return PER_SCREEN_APP_SCALING;
}
-#endif
-#if defined(FLTK_HIDPI_SUPPORT)
virtual float scale(int n) {
return scale_of_screen[n];
}
virtual void scale(int n, float f) {
scale_of_screen[n] = f;
}
+#else
+ float DWM_scaling_factor();
#endif
virtual float desktop_scale_factor();
};
diff --git a/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx
index 5951ba193..0f0609bcc 100644
--- a/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx
+++ b/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx
@@ -630,12 +630,10 @@ Fl_RGB_Image *Fl_WinAPI_Screen_Driver::read_win_rectangle_unscaled(uchar *p, int
return rgb;
}
+#ifndef FLTK_HIDPI_SUPPORT
/* Returns the current desktop scaling factor for screen_num (1.75 for example)
*/
-float Fl_WinAPI_Screen_Driver::DWM_scaling_factor(int screen_num) {
-#ifdef FLTK_HIDPI_SUPPORT
- return scale(screen_num);
-#else
+float Fl_WinAPI_Screen_Driver::DWM_scaling_factor() {
// Compute the global desktop scaling factor: 1, 1.25, 1.5, 1.75, etc...
// This factor can be set in Windows 10 by
// "Change the size of text, apps and other items" in display settings.
@@ -655,9 +653,10 @@ float Fl_WinAPI_Screen_Driver::DWM_scaling_factor(int screen_num) {
float scaling = dhr/float(hr);
scaling = int(scaling * 100 + 0.5)/100.; // round to 2 digits after decimal point
return scaling;
-#endif // FLTK_HIDPI_SUPPORT
}
+#endif // ! FLTK_HIDPI_SUPPORT
+
void Fl_WinAPI_Screen_Driver::offscreen_size(Fl_Offscreen off, int &width, int &height)
{
BITMAP bitmap;
diff --git a/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx
index 20a84736a..383e85e4a 100644
--- a/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx
+++ b/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.cxx
@@ -108,7 +108,7 @@ RECT // frame of the decorated window in screen coordinates
width = rc.right;
height = rc.bottom;
#else
- float scaling = ((Fl_WinAPI_Screen_Driver*)Fl::screen_driver())->DWM_scaling_factor(0);
+ float scaling = ((Fl_WinAPI_Screen_Driver*)Fl::screen_driver())->DWM_scaling_factor();
width = int(win->w() * scaling);
height = int(win->h() * scaling);
#endif
@@ -141,7 +141,7 @@ int Fl_WinAPI_Window_Driver::decorated_h()
int mini_by = by/s; if (mini_by < 1) mini_by = 1;
return h() + (bt + by)/s + mini_by;
#else
- float scaling = ((Fl_WinAPI_Screen_Driver*)Fl::screen_driver())->DWM_scaling_factor(0);
+ float scaling = ((Fl_WinAPI_Screen_Driver*)Fl::screen_driver())->DWM_scaling_factor();
return h() + bt/scaling + 2 * by +1;
#endif
}