Module: wine Branch: master Commit: 74a759673d4aba26aa6312073c5cb3a7441143bf URL: http://source.winehq.org/git/wine.git/?a=commit;h=74a759673d4aba26aa6312073c...
Author: Jacek Caban jacek@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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;