[PATCH 3/4] quartz: Hide video window on WM_CLOSE.

Zebediah Figura (she/her) zfigura at codeweavers.com
Mon May 17 11:11:46 CDT 2021


On 5/6/21 9:06 AM, Akihiro Sagawa wrote:
> From: Akihiro Sagawa <sagawa.aki at gmail.com>
> Subject: [PATCH 3/4] quartz: Hide video window on WM_CLOSE.
> Message-Id: <20210506230504.D295.375B48EC at gmail.com>
> Date: Thu, 06 May 2021 23:06:04 +0900
> 
> Signed-off-by: Akihiro Sagawa <sagawa.aki at gmail.com>
> ---
>  dlls/quartz/tests/videorenderer.c | 2 +-
>  dlls/quartz/tests/vmr7.c          | 2 +-
>  dlls/quartz/tests/vmr9.c          | 2 +-
>  dlls/quartz/window.c              | 3 +++
>  4 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/dlls/quartz/tests/videorenderer.c b/dlls/quartz/tests/videorenderer.c
> index d76d964e074..4470e7376b0 100644
> --- a/dlls/quartz/tests/videorenderer.c
> +++ b/dlls/quartz/tests/videorenderer.c
> @@ -2221,7 +2221,7 @@ static void test_video_window_userabort(IVideoWindow *window, IFilterGraph2 *gra
>      ok(hr == E_ABORT, "Got hr %#x.\n", hr);
>      todo_wine ok(ret == 1, "Expected EC_USERABORT.\n");
>  
> -    todo_wine ok(IsWindow(hwnd), "Window should exist.\n");
> +    ok(IsWindow(hwnd), "Window should exist.\n");
>      ok(!IsWindowVisible(hwnd), "Window shouldn't be visible.\n");
>  
>      IMediaEvent_Release(eventsrc);
> diff --git a/dlls/quartz/tests/vmr7.c b/dlls/quartz/tests/vmr7.c
> index 357a84fe3db..421693f0eee 100644
> --- a/dlls/quartz/tests/vmr7.c
> +++ b/dlls/quartz/tests/vmr7.c
> @@ -2206,7 +2206,7 @@ static void test_video_window_userabort(IVideoWindow *window, IFilterGraph2 *gra
>      ok(hr == E_ABORT, "Got hr %#x.\n", hr);
>      todo_wine ok(ret == 1, "Expected EC_USERABORT.\n");
>  
> -    todo_wine ok(IsWindow(hwnd), "Window should exist.\n");
> +    ok(IsWindow(hwnd), "Window should exist.\n");
>      ok(!IsWindowVisible(hwnd), "Window shouldn't be visible.\n");
>  
>      IMediaEvent_Release(eventsrc);
> diff --git a/dlls/quartz/tests/vmr9.c b/dlls/quartz/tests/vmr9.c
> index 04306b29b79..92af83d3266 100644
> --- a/dlls/quartz/tests/vmr9.c
> +++ b/dlls/quartz/tests/vmr9.c
> @@ -2445,7 +2445,7 @@ static void test_video_window_userabort(IVideoWindow *window, IFilterGraph2 *gra
>      ok(hr == E_ABORT, "Got hr %#x.\n", hr);
>      todo_wine ok(ret == 1, "Expected EC_USERABORT.\n");
>  
> -    todo_wine ok(IsWindow(hwnd), "Window should exist.\n");
> +    ok(IsWindow(hwnd), "Window should exist.\n");
>      ok(!IsWindowVisible(hwnd), "Window shouldn't be visible.\n");
>  
>      IMediaEvent_Release(eventsrc);
> diff --git a/dlls/quartz/window.c b/dlls/quartz/window.c
> index bc34cd37cf9..6d9c544c897 100644
> --- a/dlls/quartz/window.c
> +++ b/dlls/quartz/window.c
> @@ -76,6 +76,9 @@ static LRESULT CALLBACK WndProcW(HWND hwnd, UINT message, WPARAM wparam, LPARAM
>      case WM_QUARTZ_DESTROY:
>          DestroyWindow(hwnd);
>          return 0;
> +    case WM_CLOSE:
> +        ShowWindow(window->hwnd, SW_HIDE);
> +        return 0;
>      }
>  
>      return DefWindowProcW(hwnd, message, wparam, lparam);
> 

Is it possible to call IVideoWindow methods on the filter after it's 
been "closed"? Especialy put_Visible().



More information about the wine-devel mailing list