Jacek Caban : mshtml: Activate nsWebBrowser after creating document window.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jun 25 07:28:22 CDT 2007


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Jun 22 23:32:22 2007 +0200

mshtml: Activate nsWebBrowser after creating document window.

---

 dlls/mshtml/view.c |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/dlls/mshtml/view.c b/dlls/mshtml/view.c
index cbd8c89..14648c7 100644
--- a/dlls/mshtml/view.c
+++ b/dlls/mshtml/view.c
@@ -84,16 +84,16 @@ static void paint_document(HTMLDocument *This)
     EndPaint(This->hwnd, &ps);
 }
 
-static void activate_gecko(HTMLDocument *This)
+static void activate_gecko(NSContainer *This)
 {
-    TRACE("(%p) %p\n", This, This->nscontainer->window);
+    TRACE("(%p) %p\n", This, This->window);
 
-    SetParent(This->nscontainer->hwnd, This->hwnd);
-    ShowWindow(This->nscontainer->hwnd, SW_SHOW);
+    SetParent(This->hwnd, This->doc->hwnd);
+    ShowWindow(This->hwnd, SW_SHOW);
 
-    nsIBaseWindow_SetVisibility(This->nscontainer->window, TRUE);
-    nsIBaseWindow_SetEnabled(This->nscontainer->window, TRUE);
-    nsIWebBrowserFocus_Activate(This->nscontainer->focus);
+    nsIBaseWindow_SetVisibility(This->window, TRUE);
+    nsIBaseWindow_SetEnabled(This->window, TRUE);
+    nsIWebBrowserFocus_Activate(This->focus);
 }
 
 void update_doc(HTMLDocument *This, DWORD flags)
@@ -180,8 +180,6 @@ static LRESULT WINAPI serverwnd_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
     switch(msg) {
     case WM_CREATE:
         This->hwnd = hwnd;
-        if(This->nscontainer)
-            activate_gecko(This);
         break;
     case WM_PAINT:
         paint_document(This);
@@ -242,7 +240,8 @@ static HRESULT activate_window(HTMLDocument *This)
         return FAILED(hres) ? hres : E_FAIL;
     }
 
-    hres = IOleInPlaceSite_GetWindowContext(This->ipsite, &pIPFrame, &pIPWnd, &posrect, &cliprect, &frameinfo);
+    hres = IOleInPlaceSite_GetWindowContext(This->ipsite, &pIPFrame, &pIPWnd,
+            &posrect, &cliprect, &frameinfo);
     if(FAILED(hres)) {
         WARN("GetWindowContext failed: %08x\n", hres);
         return hres;
@@ -289,6 +288,9 @@ static HRESULT activate_window(HTMLDocument *This)
         SetTimer(This->hwnd, TIMER_ID, 100, NULL);
     }
 
+    if(This->nscontainer)
+        activate_gecko(This->nscontainer);
+
     This->in_place_active = TRUE;
     hres = IOleInPlaceSite_QueryInterface(This->ipsite, &IID_IOleInPlaceSiteEx, (void**)&ipsiteex);
     if(SUCCEEDED(hres)) {




More information about the wine-cvs mailing list