summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-01-13 15:15:02 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-01-13 15:15:02 +0100
commit6a5c326c39e9b2353ca9439ba1e9dab2815e6000 (patch)
tree8e32e6f546756469326c24f30757c807401b2e50
parent7dd7cfcf953a01f13c378bd110964ce1c4dc82a6 (diff)
Fix for "Screen resolution change (win32)" (#651)
-rw-r--r--src/Fl_win32.cxx8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx
index cdd9189a1..df4409aa7 100644
--- a/src/Fl_win32.cxx
+++ b/src/Fl_win32.cxx
@@ -1258,7 +1258,7 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
if (window) {
switch (uMsg) {
- case WM_DPICHANGED: { // 0x02E0
+ case WM_DPICHANGED: { // 0x02E0, after display re-scaling and followed by WM_DISPLAYCHANGE
if (is_dpi_aware && !Fl_WinAPI_Window_Driver::data_for_resize_window_between_screens_.busy) {
RECT r;
Fl_WinAPI_Screen_Driver *sd = (Fl_WinAPI_Screen_Driver*)Fl::screen_driver();
@@ -1701,12 +1701,8 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
fl_i_own_selection[1] = 0;
return 1;
- case WM_DISPLAYCHANGE: {// occurs when screen configuration (number, size, position) changes
+ case WM_DISPLAYCHANGE: {// when screen configuration (number, size, position) changes
Fl::call_screen_init();
- Fl_WinAPI_Screen_Driver *sd = (Fl_WinAPI_Screen_Driver*)Fl::screen_driver();
- for (int ns = 0; ns < sd->screen_count(); ns++) {
- sd->rescale_all_windows_from_screen(ns, sd->dpi[ns][0]/96);
- }
Fl::handle(FL_SCREEN_CONFIGURATION_CHANGED, NULL);
return 0;
}