Module: wine Branch: master Commit: 8f45d9a991cbc739fafde55811524eaf742282b0 URL: https://source.winehq.org/git/wine.git/?a=commit;h=8f45d9a991cbc739fafde5581... Author: Zhiyi Zhang <zzhang(a)codeweavers.com> Date: Wed Aug 14 16:21:06 2019 +0800 user32: Wait for graphics driver to be ready in EnumDisplayDevicesW. It's possible that EnumDisplayDevicesW gets called before graphics driver is loaded. Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com> Signed-off-by: Huw Davies <huw(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/user32/sysparams.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dlls/user32/sysparams.c b/dlls/user32/sysparams.c index cdeea65..09cebc2 100644 --- a/dlls/user32/sysparams.c +++ b/dlls/user32/sysparams.c @@ -736,6 +736,18 @@ static void release_display_device_init_mutex( HANDLE mutex ) CloseHandle( mutex ); } +/* Wait until graphics driver is loaded by explorer */ +static void wait_graphics_driver_ready(void) +{ + static BOOL ready = FALSE; + + if (!ready) + { + SendMessageW( GetDesktopWindow(), WM_NULL, 0, 0 ); + ready = TRUE; + } +} + /* map value from system dpi to standard 96 dpi for storing in the registry */ static int map_from_system_dpi( int val ) { @@ -4048,6 +4060,7 @@ BOOL WINAPI EnumDisplayDevicesW( LPCWSTR device, DWORD index, DISPLAY_DEVICEW *i TRACE("%s %d %p %#x\n", debugstr_w( device ), index, info, flags); + wait_graphics_driver_ready(); mutex = get_display_device_init_mutex(); /* Find adapter */