Merge branch 'fix-explorer-msg-queue-hang' into 'master'

winex11.drv: Fix a possible desktop window message queue hang.

See merge request wine/wine!5890
This commit is contained in:
Zhiyi Zhang 2024-11-19 11:51:01 +00:00
commit 7d44ccf155

View file

@ -1215,15 +1215,19 @@ static void xrandr14_free_monitors( struct gdi_monitor *monitors, int count )
static BOOL xrandr14_device_change_handler( HWND hwnd, XEvent *event ) static BOOL xrandr14_device_change_handler( HWND hwnd, XEvent *event )
{ {
BOOL ret = FALSE;
RECT rect; RECT rect;
xrandr14_invalidate_current_mode_cache(); xrandr14_invalidate_current_mode_cache();
if (hwnd == NtUserGetDesktopWindow() && NtUserGetWindowThread( hwnd, NULL ) == GetCurrentThreadId()) if (hwnd == NtUserGetDesktopWindow() && NtUserGetWindowThread( hwnd, NULL ) == GetCurrentThreadId())
{
NtUserCallNoParam( NtUserCallNoParam_DisplayModeChanged ); NtUserCallNoParam( NtUserCallNoParam_DisplayModeChanged );
ret = TRUE;
}
/* Update xinerama monitors for xinerama_get_fullscreen_monitors() */ /* Update xinerama monitors for xinerama_get_fullscreen_monitors() */
rect = get_host_primary_monitor_rect(); rect = get_host_primary_monitor_rect();
xinerama_init( rect.right - rect.left, rect.bottom - rect.top ); xinerama_init( rect.right - rect.left, rect.bottom - rect.top );
return FALSE; return ret;
} }
static void xrandr14_register_event_handlers(void) static void xrandr14_register_event_handlers(void)