Jacek Caban : mshtml: Moved more code to handle_docobj_load.

Alexandre Julliard julliard at winehq.org
Thu Oct 7 11:24:24 CDT 2010


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Oct  6 21:35:39 2010 +0200

mshtml: Moved more code to handle_docobj_load.

---

 dlls/mshtml/nsevents.c |   66 ++++++++++++++++++++++++-----------------------
 1 files changed, 34 insertions(+), 32 deletions(-)

diff --git a/dlls/mshtml/nsevents.c b/dlls/mshtml/nsevents.c
index 8dda1e5..85d6e56 100644
--- a/dlls/mshtml/nsevents.c
+++ b/dlls/mshtml/nsevents.c
@@ -178,65 +178,67 @@ static nsresult NSAPI handle_keypress(nsIDOMEventListener *iface,
 
 static void handle_docobj_load(HTMLDocumentObj *doc)
 {
-    IOleCommandTarget *olecmd = NULL;
     HRESULT hres;
 
-    if(!doc->client)
-        return;
+    if(doc->nscontainer->editor_controller) {
+        nsIController_Release(doc->nscontainer->editor_controller);
+        doc->nscontainer->editor_controller = NULL;
+    }
 
-    hres = IOleClientSite_QueryInterface(doc->client, &IID_IOleCommandTarget, (void**)&olecmd);
-    if(SUCCEEDED(hres)) {
-        if(doc->download_state) {
-            VARIANT state, progress;
+    if(doc->usermode == EDITMODE)
+        handle_edit_load(&doc->basedoc);
 
-            V_VT(&progress) = VT_I4;
-            V_I4(&progress) = 0;
-            IOleCommandTarget_Exec(olecmd, NULL, OLECMDID_SETPROGRESSPOS,
-                    OLECMDEXECOPT_DONTPROMPTUSER, &progress, NULL);
+    if(doc->client) {
+        IOleCommandTarget *olecmd = NULL;
 
-            V_VT(&state) = VT_I4;
-            V_I4(&state) = 0;
-            IOleCommandTarget_Exec(olecmd, NULL, OLECMDID_SETDOWNLOADSTATE,
-                    OLECMDEXECOPT_DONTPROMPTUSER, &state, NULL);
-        }
+        hres = IOleClientSite_QueryInterface(doc->client, &IID_IOleCommandTarget, (void**)&olecmd);
+        if(SUCCEEDED(hres)) {
+            if(doc->download_state) {
+                VARIANT state, progress;
+
+                V_VT(&progress) = VT_I4;
+                V_I4(&progress) = 0;
+                IOleCommandTarget_Exec(olecmd, NULL, OLECMDID_SETPROGRESSPOS,
+                        OLECMDEXECOPT_DONTPROMPTUSER, &progress, NULL);
 
-        IOleCommandTarget_Exec(olecmd, &CGID_ShellDocView, 103, 0, NULL, NULL);
-        IOleCommandTarget_Exec(olecmd, &CGID_MSHTML, IDM_PARSECOMPLETE, 0, NULL, NULL);
-        IOleCommandTarget_Exec(olecmd, NULL, OLECMDID_HTTPEQUIV_DONE, 0, NULL, NULL);
+                V_VT(&state) = VT_I4;
+                V_I4(&state) = 0;
+                IOleCommandTarget_Exec(olecmd, NULL, OLECMDID_SETDOWNLOADSTATE,
+                        OLECMDEXECOPT_DONTPROMPTUSER, &state, NULL);
+            }
 
-        IOleCommandTarget_Release(olecmd);
+            IOleCommandTarget_Exec(olecmd, &CGID_ShellDocView, 103, 0, NULL, NULL);
+            IOleCommandTarget_Exec(olecmd, &CGID_MSHTML, IDM_PARSECOMPLETE, 0, NULL, NULL);
+            IOleCommandTarget_Exec(olecmd, NULL, OLECMDID_HTTPEQUIV_DONE, 0, NULL, NULL);
+
+            IOleCommandTarget_Release(olecmd);
+        }
     }
+
     doc->download_state = 0;
 }
 
 static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event)
 {
     HTMLDocumentNode *doc = NSEVENTLIST_THIS(iface)->This->doc;
-    HTMLDocumentObj *doc_obj;
     nsIDOMHTMLElement *nsbody = NULL;
+    HTMLDocumentObj *doc_obj = NULL;
 
     TRACE("(%p)\n", doc);
 
     if(!doc || !doc->basedoc.window)
         return NS_ERROR_FAILURE;
-    doc_obj = doc->basedoc.doc_obj;
+    if(doc->basedoc.doc_obj && doc->basedoc.doc_obj->basedoc.doc_node == doc)
+        doc_obj = doc->basedoc.doc_obj;
 
     connect_scripts(doc->basedoc.window);
 
-    if(doc_obj->nscontainer->editor_controller) {
-        nsIController_Release(doc_obj->nscontainer->editor_controller);
-        doc_obj->nscontainer->editor_controller = NULL;
-    }
-
-    if(doc_obj->usermode == EDITMODE)
-        handle_edit_load(&doc_obj->basedoc);
-
-    if(doc == doc_obj->basedoc.doc_node)
+    if(doc_obj)
         handle_docobj_load(doc_obj);
 
     set_ready_state(doc->basedoc.window, READYSTATE_COMPLETE);
 
-    if(doc == doc_obj->basedoc.doc_node) {
+    if(doc_obj) {
         if(doc_obj->view_sink)
             IAdviseSink_OnViewChange(doc_obj->view_sink, DVASPECT_CONTENT, -1);
 




More information about the wine-cvs mailing list