From 6a5c326c39e9b2353ca9439ba1e9dab2815e6000 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Fri, 13 Jan 2023 15:15:02 +0100 Subject: Fix for "Screen resolution change (win32)" (#651) --- src/Fl_win32.cxx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'src') 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; } -- cgit v1.2.3