Jacek Caban : mshtml: Use inner window's event target for body element.

Alexandre Julliard julliard at winehq.org
Tue Feb 14 16:24:51 CST 2017


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Feb 13 21:10:44 2017 +0100

mshtml: Use inner window's event target for body element.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/htmlbody.c       | 4 ++--
 dlls/mshtml/htmldoc.c        | 2 --
 dlls/mshtml/htmlwindow.c     | 4 +++-
 dlls/mshtml/mshtml_private.h | 1 -
 4 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/dlls/mshtml/htmlbody.c b/dlls/mshtml/htmlbody.c
index 729ef82..fbd04aa 100644
--- a/dlls/mshtml/htmlbody.c
+++ b/dlls/mshtml/htmlbody.c
@@ -829,8 +829,8 @@ static event_target_t **HTMLBodyElement_get_event_target_ptr(HTMLDOMNode *iface)
 {
     HTMLBodyElement *This = impl_from_HTMLDOMNode(iface);
 
-    return This->textcont.element.node.doc
-        ? &This->textcont.element.node.doc->body_event_target
+    return This->textcont.element.node.doc && This->textcont.element.node.doc->window
+        ? &This->textcont.element.node.doc->window->event_target.ptr
         : &This->textcont.element.node.event_target.ptr;
 }
 
diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index b672c2d..5c15772 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -4644,8 +4644,6 @@ static void HTMLDocumentNode_destructor(HTMLDOMNode *iface)
     heap_free(This->elem_vars);
 
     detach_events(This);
-    if(This->body_event_target)
-        release_event_target(This->body_event_target);
     if(This->catmgr)
         ICatInformation_Release(This->catmgr);
 
diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c
index b4ec425..b1efc0d 100644
--- a/dlls/mshtml/htmlwindow.c
+++ b/dlls/mshtml/htmlwindow.c
@@ -253,6 +253,8 @@ static void release_inner_window(HTMLInnerWindow *This)
         htmldoc_release(&This->doc->basedoc);
     }
 
+    if(This->event_target.ptr)
+        release_event_target(This->event_target.ptr);
     release_dispex(&This->event_target.dispex);
 
     for(i=0; i < This->global_prop_cnt; i++)
@@ -2943,7 +2945,7 @@ static HRESULT HTMLWindow_invoke(DispatchEx *dispex, DISPID id, LCID lcid, WORD
 static event_target_t **HTMLWindow_get_event_target_ptr(DispatchEx *dispex)
 {
     HTMLInnerWindow *This = impl_from_DispatchEx(dispex);
-    return &This->doc->body_event_target;
+    return &This->event_target.ptr;
 }
 
 static void HTMLWindow_bind_event(DispatchEx *dispex, int eid)
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index f27b674..8bc0599 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -801,7 +801,6 @@ struct HTMLDocumentNode {
 
     nsIDOMHTMLDocument *nsdoc;
     BOOL content_ready;
-    event_target_t *body_event_target;
 
     IHTMLDOMImplementation *dom_implementation;
 




More information about the wine-cvs mailing list