Jacek Caban : shdocvw: Call OnFullScreen in put_FullScreen.

Alexandre Julliard julliard at winehq.org
Tue Jan 15 07:47:09 CST 2008


Module: wine
Branch: master
Commit: 7b268a5583741129b8c4c78a728203f66545e563
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7b268a5583741129b8c4c78a728203f66545e563

Author: Jacek Caban <jacek at 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;
 }
 




More information about the wine-cvs mailing list