Module: wine Branch: master Commit: 7b268a5583741129b8c4c78a728203f66545e563 URL: http://source.winehq.org/git/wine.git/?a=commit;h=7b268a5583741129b8c4c78a72...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Jan 14 16:26:23 2008 +0100
shdocvw: Call OnFullScreen in put_FullScreen.
---
dlls/shdocvw/tests/webbrowser.c | 6 +++--- dlls/shdocvw/webbrowser.c | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c index a73abfa..102f7d9 100644 --- a/dlls/shdocvw/tests/webbrowser.c +++ b/dlls/shdocvw/tests/webbrowser.c @@ -1532,7 +1532,7 @@ static void test_ie_funcs(IUnknown *unk) SET_EXPECT(Invoke_ONFULLSCREEN); hres = IWebBrowser2_put_FullScreen(wb, (exvb = VARIANT_TRUE)); ok(hres == S_OK, "put_FullScreen failed: %08x\n", hres); - todo_wine CHECK_CALLED(Invoke_ONFULLSCREEN); + CHECK_CALLED(Invoke_ONFULLSCREEN);
hres = IWebBrowser2_get_FullScreen(wb, &b); ok(hres == S_OK, "get_FullScreen failed: %08x\n", hres); @@ -1541,7 +1541,7 @@ static void test_ie_funcs(IUnknown *unk) SET_EXPECT(Invoke_ONFULLSCREEN); hres = IWebBrowser2_put_FullScreen(wb, (exvb = 100)); ok(hres == S_OK, "put_FullScreen failed: %08x\n", hres); - todo_wine CHECK_CALLED(Invoke_ONFULLSCREEN); + CHECK_CALLED(Invoke_ONFULLSCREEN);
hres = IWebBrowser2_get_FullScreen(wb, &b); ok(hres == S_OK, "get_FullScreen failed: %08x\n", hres); @@ -1550,7 +1550,7 @@ static void test_ie_funcs(IUnknown *unk) SET_EXPECT(Invoke_ONFULLSCREEN); hres = IWebBrowser2_put_FullScreen(wb, (exvb = VARIANT_FALSE)); ok(hres == S_OK, "put_FullScreen failed: %08x\n", hres); - todo_wine CHECK_CALLED(Invoke_ONFULLSCREEN); + CHECK_CALLED(Invoke_ONFULLSCREEN);
/* Resizable */
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c index e2b79ae..b72523b 100644 --- a/dlls/shdocvw/webbrowser.c +++ b/dlls/shdocvw/webbrowser.c @@ -667,10 +667,20 @@ static HRESULT WINAPI WebBrowser_get_FullScreen(IWebBrowser2 *iface, VARIANT_BOO static HRESULT WINAPI WebBrowser_put_FullScreen(IWebBrowser2 *iface, VARIANT_BOOL bFullScreen) { WebBrowser *This = WEBBROWSER_THIS(iface); + VARIANTARG arg; + DISPPARAMS dispparams = {&arg, NULL, 1, 0}; + + /* In opposition to InternetExplorer, all we should do here is + * inform the embedder about the fullscreen change. */
TRACE("(%p)->(%x)\n", This, bFullScreen);
This->full_screen = bFullScreen ? VARIANT_TRUE : VARIANT_FALSE; + + V_VT(&arg) = VT_BOOL; + V_BOOL(&arg) = bFullScreen; + call_sink(This->doc_host.cps.wbe2, DISPID_ONFULLSCREEN, &dispparams); + return S_OK; }