From: Rémi Bernon rbernon@codeweavers.com
--- dlls/win32u/sysparams.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c index 41fd2780da3..107d822d6fb 100644 --- a/dlls/win32u/sysparams.c +++ b/dlls/win32u/sysparams.c @@ -544,12 +544,26 @@ static BOOL adapter_get_registry_settings( const struct adapter *adapter, DEVMOD
static BOOL adapter_get_current_settings( const struct adapter *adapter, DEVMODEW *mode ) { + HANDLE mutex; + HKEY hkey; BOOL ret;
if (adapter->dev.state_flags & DISPLAY_DEVICE_PRIMARY_DEVICE) mode->dmDisplayFlags |= WINE_DM_PRIMARY_DEVICE; ret = user_driver->pGetCurrentDisplaySettings( adapter->dev.device_name, mode ); mode->dmDisplayFlags &= ~WINE_DM_PRIMARY_DEVICE; + if (ret) return ret;
+ mutex = get_display_device_init_mutex(); + + if (!config_key && !(config_key = reg_open_key( NULL, config_keyW, sizeof(config_keyW) ))) ret = FALSE; + else if (!(hkey = reg_open_key( config_key, adapter->config_key, lstrlenW( adapter->config_key ) * sizeof(WCHAR) ))) ret = FALSE; + else + { + ret = read_adapter_mode( hkey, ENUM_CURRENT_SETTINGS, mode ); + NtClose( hkey ); + } + + release_display_device_init_mutex( mutex ); return ret; }