From: R��mi Bernon rbernon@codeweavers.com
--- dlls/win32u/sysparams.c | 4 +++- dlls/winex11.drv/display.c | 10 ---------- 2 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c index b8650fec126..3017d02ecaa 100644 --- a/dlls/win32u/sysparams.c +++ b/dlls/win32u/sysparams.c @@ -2106,7 +2106,9 @@ static DEVMODEW *validate_display_settings( DEVMODEW *modes, DEVMODEW *default_m if ((mode = find_display_mode( modes, devmode ))) { mode->dmFields |= DM_POSITION; - mode->dmPosition = devmode->dmPosition; + if (devmode->dmFields & DM_POSITION) mode->dmPosition = devmode->dmPosition; + else mode->dmPosition = current_mode->dmPosition; + return mode; }
diff --git a/dlls/winex11.drv/display.c b/dlls/winex11.drv/display.c index f9d455d8d5e..35065e7cd54 100644 --- a/dlls/winex11.drv/display.c +++ b/dlls/winex11.drv/display.c @@ -498,16 +498,6 @@ static LONG get_display_settings(DEVMODEW **new_displays, const WCHAR *dev_name, else if (!wcsicmp(dev_name, display_device.DeviceName)) { *mode = *dev_mode; - if (!(dev_mode->dmFields & DM_POSITION)) - { - memset(¤t_mode, 0, sizeof(current_mode)); - current_mode.dmSize = sizeof(current_mode); - if (!NtUserEnumDisplaySettings( &device_name, ENUM_CURRENT_SETTINGS, ¤t_mode, 0 )) - goto done; - - mode->dmFields |= DM_POSITION; - mode->dmPosition = current_mode.dmPosition; - } } else {