These changes fix the camera rotation for Deus Ex.
From: Zsolt Vadasz zsolt_vadasz@protonmail.com
--- dlls/win32u/input.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c index 0c462f42675..e48be56e02d 100644 --- a/dlls/win32u/input.c +++ b/dlls/win32u/input.c @@ -2470,6 +2470,7 @@ BOOL clip_fullscreen_window( HWND hwnd, BOOL reset ) { struct user_thread_info *thread_info = get_user_thread_info(); MONITORINFO monitor_info = {.cbSize = sizeof(MONITORINFO)}; + HWND captured; RECT rect; HMONITOR monitor; DWORD style; @@ -2486,7 +2487,7 @@ BOOL clip_fullscreen_window( HWND hwnd, BOOL reset )
if (!NtUserGetWindowRect( hwnd, &rect )) return FALSE; if (!NtUserIsWindowRectFullScreen( &rect )) return FALSE; - if (get_capture()) return FALSE; + if ((captured = get_capture()) && captured != hwnd) return FALSE; if (NtGetTickCount() - thread_info->clipping_reset < 1000) return FALSE; if (!reset && clipping_cursor && thread_info->clipping_cursor) return FALSE; /* already clipping */
From: Zsolt Vadasz zsolt_vadasz@protonmail.com
--- dlls/win32u/input.c | 1 - 1 file changed, 1 deletion(-)
diff --git a/dlls/win32u/input.c b/dlls/win32u/input.c index e48be56e02d..303dd74e9ce 100644 --- a/dlls/win32u/input.c +++ b/dlls/win32u/input.c @@ -2497,7 +2497,6 @@ BOOL clip_fullscreen_window( HWND hwnd, BOOL reset ) { RECT virtual_rect = NtUserGetVirtualScreenRect(); if (!EqualRect( &monitor_info.rcMonitor, &virtual_rect )) return FALSE; - if (is_virtual_desktop()) return FALSE; }
TRACE( "win %p clipping fullscreen\n", hwnd );
There's another attempt at fixing a similar regression here: https://gitlab.winehq.org/wine/wine/-/merge_requests/3323 would you mind trying it, see if it solves your issue?
On Thu Jul 27 09:31:04 2023 +0000, Rémi Bernon wrote:
There's another attempt at fixing a similar regression here: https://gitlab.winehq.org/wine/wine/-/merge_requests/3323 would you mind trying it, see if it solves your issue?
I just tested it, it fixes the problem when not using virtual desktop, same as my first commit. However, I still needed to apply my second patch to make it work with virtual desktop enabled.
On Thu Jul 27 09:31:04 2023 +0000, Zsolt Vadász wrote:
I just tested it, it fixes the problem when not using virtual desktop, same as my first commit. However, I still needed to apply my second patch to make it work with virtual desktop enabled.
I don't think the second commit is necessary, you can enable "fullscreen window clipping" in winecfg if you want virtual desktop to clip fullscreen windows.
On Thu Jul 27 09:36:25 2023 +0000, Rémi Bernon wrote:
I don't think the second commit is necessary, you can enable "fullscreen window clipping" in winecfg if you want virtual desktop to clip fullscreen windows.
Indeed, !3323 works with the option enabled. I wonder if this option should on by default, since I assume a lot of people run games with virtual desktop enabled (I certainly do since it always magically fixed some oddities for me).
This merge request was closed by Rémi Bernon.