Commit 567f9305 authored by Akihiro Sagawa's avatar Akihiro Sagawa Committed by Alexandre Julliard

quartz: Hide video window on WM_CLOSE.

parent b0458a31
......@@ -1346,7 +1346,7 @@ static void test_window_close(IPin *pin, IMemInputPin *input, IMediaControl *con
ret = check_ec_userabort(eventsrc, 0);
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 should be visible.\n");
thread = send_frame(input);
......@@ -1385,7 +1385,7 @@ static void test_window_close(IPin *pin, IMemInputPin *input, IMediaControl *con
ret = check_ec_userabort(eventsrc, 0);
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 should be visible.\n");
hr = IMediaControl_Stop(control);
......
......@@ -1377,7 +1377,7 @@ static void test_window_close(IPin *pin, IMemInputPin *input, IMediaControl *con
ret = check_ec_userabort(eventsrc, 0);
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 should be visible.\n");
thread = send_frame(input);
......@@ -1417,7 +1417,7 @@ static void test_window_close(IPin *pin, IMemInputPin *input, IMediaControl *con
ret = check_ec_userabort(eventsrc, 0);
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 should be visible.\n");
hr = IMediaControl_Stop(control);
......
......@@ -1582,7 +1582,7 @@ static void test_window_close(IPin *pin, IMemInputPin *input, IMediaControl *con
ret = check_ec_userabort(eventsrc, 0);
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 should be visible.\n");
thread = send_frame(input);
......@@ -1622,7 +1622,7 @@ static void test_window_close(IPin *pin, IMemInputPin *input, IMediaControl *con
ret = check_ec_userabort(eventsrc, 0);
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 should be visible.\n");
hr = IMediaControl_Stop(control);
......
......@@ -20,6 +20,8 @@
#include "quartz_private.h"
#define WM_QUARTZ_DESTROY (WM_USER + WM_DESTROY)
WINE_DEFAULT_DEBUG_CHANNEL(quartz);
static const WCHAR class_name[] = L"wine_quartz_window";
......@@ -71,6 +73,12 @@ static LRESULT CALLBACK WndProcW(HWND hwnd, UINT message, WPARAM wparam, LPARAM
if (window->default_dst)
GetClientRect(window->hwnd, &window->dst);
break;
case WM_QUARTZ_DESTROY:
DestroyWindow(hwnd);
return 0;
case WM_CLOSE:
IVideoWindow_put_Visible(&window->IVideoWindow_iface, OAFALSE);
return 0;
}
return DefWindowProcW(hwnd, message, wparam, lparam);
......@@ -1251,7 +1259,7 @@ void video_window_cleanup(struct video_window *window)
* it would become top-level for a brief period before being destroyed. */
SetWindowLongW(window->hwnd, GWL_STYLE, GetWindowLongW(window->hwnd, GWL_STYLE) & ~WS_CHILD);
SendMessageW(window->hwnd, WM_CLOSE, 0, 0);
SendMessageW(window->hwnd, WM_QUARTZ_DESTROY, 0, 0);
window->hwnd = NULL;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment