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>
This commit is contained in:
Jacek Caban 2017-02-13 21:10:44 +01:00 committed by Alexandre Julliard
parent 8fba2bc6df
commit 74a759673d
4 changed files with 5 additions and 6 deletions

View File

@ -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;
}

View File

@ -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);

View File

@ -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)

View File

@ -801,7 +801,6 @@ struct HTMLDocumentNode {
nsIDOMHTMLDocument *nsdoc;
BOOL content_ready;
event_target_t *body_event_target;
IHTMLDOMImplementation *dom_implementation;