[PATCH 5/5] strmbase: Do not activate the window when changing its position.

Zebediah Figura z.figura12 at gmail.com
Mon Oct 7 18:55:46 CDT 2019


Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=10440
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/quartz/tests/videorenderer.c |  4 ++--
 dlls/strmbase/window.c            | 14 +++++++++-----
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/dlls/quartz/tests/videorenderer.c b/dlls/quartz/tests/videorenderer.c
index f4c3f92e289..f1f901d164d 100644
--- a/dlls/quartz/tests/videorenderer.c
+++ b/dlls/quartz/tests/videorenderer.c
@@ -1762,9 +1762,9 @@ static void test_video_window_position(IVideoWindow *window, HWND hwnd, HWND our
     ok(rect.right == 400, "Got window right %d.\n", rect.right);
     ok(rect.bottom == 600, "Got window bottom %d.\n", rect.bottom);
 
-    todo_wine ok(GetActiveWindow() == our_hwnd, "Got active window %p.\n", GetActiveWindow());
+    ok(GetActiveWindow() == our_hwnd, "Got active window %p.\n", GetActiveWindow());
     top_hwnd = get_top_window();
-    todo_wine ok(top_hwnd == our_hwnd, "Got top window %p.\n", top_hwnd);
+    ok(top_hwnd == our_hwnd, "Got top window %p.\n", top_hwnd);
 }
 
 static void test_video_window_owner(IVideoWindow *window, HWND hwnd, HWND our_hwnd)
diff --git a/dlls/strmbase/window.c b/dlls/strmbase/window.c
index 446c389220b..cb41aee2f4f 100644
--- a/dlls/strmbase/window.c
+++ b/dlls/strmbase/window.c
@@ -462,7 +462,8 @@ HRESULT WINAPI BaseControlWindowImpl_put_Left(IVideoWindow *iface, LONG Left)
     TRACE("(%p/%p)->(%d)\n", This, iface, Left);
 
     GetWindowRect(This->baseWindow.hWnd, &WindowPos);
-    if (!SetWindowPos(This->baseWindow.hWnd, NULL, Left, WindowPos.top, 0, 0, SWP_NOZORDER|SWP_NOSIZE))
+    if (!SetWindowPos(This->baseWindow.hWnd, NULL, Left, WindowPos.top, 0, 0,
+            SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOSIZE))
         return E_FAIL;
 
     return S_OK;
@@ -487,7 +488,8 @@ HRESULT WINAPI BaseControlWindowImpl_put_Width(IVideoWindow *iface, LONG Width)
 
     TRACE("(%p/%p)->(%d)\n", This, iface, Width);
 
-    if (!SetWindowPos(This->baseWindow.hWnd, NULL, 0, 0, Width, This->baseWindow.Height, SWP_NOZORDER|SWP_NOMOVE))
+    if (!SetWindowPos(This->baseWindow.hWnd, NULL, 0, 0, Width, This->baseWindow.Height,
+            SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE))
         return E_FAIL;
 
     This->baseWindow.Width = Width;
@@ -514,7 +516,8 @@ HRESULT WINAPI BaseControlWindowImpl_put_Top(IVideoWindow *iface, LONG Top)
     TRACE("(%p/%p)->(%d)\n", This, iface, Top);
     GetWindowRect(This->baseWindow.hWnd, &WindowPos);
 
-    if (!SetWindowPos(This->baseWindow.hWnd, NULL, WindowPos.left, Top, 0, 0, SWP_NOZORDER|SWP_NOSIZE))
+    if (!SetWindowPos(This->baseWindow.hWnd, NULL, WindowPos.left, Top, 0, 0,
+            SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOSIZE))
         return E_FAIL;
 
     return S_OK;
@@ -539,7 +542,8 @@ HRESULT WINAPI BaseControlWindowImpl_put_Height(IVideoWindow *iface, LONG Height
 
     TRACE("(%p/%p)->(%d)\n", This, iface, Height);
 
-    if (!SetWindowPos(This->baseWindow.hWnd, NULL, 0, 0, This->baseWindow.Width, Height, SWP_NOZORDER|SWP_NOMOVE))
+    if (!SetWindowPos(This->baseWindow.hWnd, NULL, 0, 0, This->baseWindow.Width,
+            Height, SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE))
         return E_FAIL;
 
     This->baseWindow.Height = Height;
@@ -675,7 +679,7 @@ HRESULT WINAPI BaseControlWindowImpl_SetWindowPosition(IVideoWindow *iface, LONG
 
     TRACE("(%p/%p)->(%d, %d, %d, %d)\n", This, iface, Left, Top, Width, Height);
 
-    if (!SetWindowPos(This->baseWindow.hWnd, NULL, Left, Top, Width, Height, SWP_NOZORDER))
+    if (!SetWindowPos(This->baseWindow.hWnd, NULL, Left, Top, Width, Height, SWP_NOACTIVATE | SWP_NOZORDER))
         return E_FAIL;
 
     This->baseWindow.Width = Width;
-- 
2.23.0




More information about the wine-devel mailing list