Module: wine Branch: master Commit: aeb43dce75f45e44ebf08d73ddf9a66f043e4fbe URL: https://gitlab.winehq.org/wine/wine/-/commit/aeb43dce75f45e44ebf08d73ddf9a66...
Author: Rémi Bernon rbernon@codeweavers.com Date: Wed Nov 23 17:24:28 2022 +0100
winex11.drv: Reposition windows on desktop resize only when useful.
This will end up moving window around only if the old virtual screen origin is different from the new one. Don't send unnecessary messages if it didn't change.
This helps speeding up D3D tests on the testbot VMs with multiple displays and hopefully solve the timeout problems.
---
dlls/winex11.drv/desktop.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/winex11.drv/desktop.c b/dlls/winex11.drv/desktop.c index 2950c663bb9..bb998543ae7 100644 --- a/dlls/winex11.drv/desktop.c +++ b/dlls/winex11.drv/desktop.c @@ -470,8 +470,10 @@ void X11DRV_resize_desktop(void) virtual_rect.right - virtual_rect.left, virtual_rect.bottom - virtual_rect.top, SWP_NOZORDER | SWP_NOACTIVATE | SWP_DEFERERASE ); ungrab_clipping_window(); - send_message_timeout( HWND_BROADCAST, WM_X11DRV_DESKTOP_RESIZED, old_virtual_rect.left, - old_virtual_rect.top, SMTO_ABORTIFHUNG, 2000, FALSE ); + + if (old_virtual_rect.left != virtual_rect.left || old_virtual_rect.top != virtual_rect.top) + send_message_timeout( HWND_BROADCAST, WM_X11DRV_DESKTOP_RESIZED, old_virtual_rect.left, + old_virtual_rect.top, SMTO_ABORTIFHUNG, 2000, FALSE );
/* forward clip_fullscreen_window request to the foreground window */ send_notify_message( NtUserGetForegroundWindow(), WM_X11DRV_CLIP_CURSOR_REQUEST, TRUE, TRUE );