mirror of
https://github.com/fltk/fltk.git
synced 2026-05-30 13:05:35 +08:00
Fix for "Screen resolution change (win32)" (#651)
This commit is contained in:
+2
-6
@@ -1258,7 +1258,7 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar
|
|||||||
if (window) {
|
if (window) {
|
||||||
switch (uMsg) {
|
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) {
|
if (is_dpi_aware && !Fl_WinAPI_Window_Driver::data_for_resize_window_between_screens_.busy) {
|
||||||
RECT r;
|
RECT r;
|
||||||
Fl_WinAPI_Screen_Driver *sd = (Fl_WinAPI_Screen_Driver*)Fl::screen_driver();
|
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;
|
fl_i_own_selection[1] = 0;
|
||||||
return 1;
|
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::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);
|
Fl::handle(FL_SCREEN_CONFIGURATION_CHANGED, NULL);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user