mshtml: Initialize DOMEventObj object with compat mode.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2021-03-11 20:40:35 +01:00 committed by Alexandre Julliard
parent f4ad57d431
commit e61e196843
3 changed files with 8 additions and 8 deletions

View File

@ -2681,7 +2681,7 @@ static HRESULT WINAPI HTMLDocument4_createEventObject(IHTMLDocument4 *iface,
return E_NOTIMPL;
}
return create_event_obj(ppEventObj);
return create_event_obj(dispex_compat_mode(&This->doc_node->node.event_target.dispex), ppEventObj);
}
static HRESULT WINAPI HTMLDocument4_fireEvent(IHTMLDocument4 *iface, BSTR bstrEventName,

View File

@ -756,7 +756,7 @@ static dispex_static_data_t HTMLEventObj_dispex = {
HTMLEventObj_iface_tids
};
static HTMLEventObj *alloc_event_obj(DOMEvent *event)
static HTMLEventObj *alloc_event_obj(DOMEvent *event, compat_mode_t compat_mode)
{
HTMLEventObj *event_obj;
@ -770,15 +770,15 @@ static HTMLEventObj *alloc_event_obj(DOMEvent *event)
if(event)
IDOMEvent_AddRef(&event->IDOMEvent_iface);
init_dispex(&event_obj->dispex, (IUnknown*)&event_obj->IHTMLEventObj_iface, &HTMLEventObj_dispex);
init_dispex_with_compat_mode(&event_obj->dispex, (IUnknown*)&event_obj->IHTMLEventObj_iface, &HTMLEventObj_dispex, compat_mode);
return event_obj;
}
HRESULT create_event_obj(IHTMLEventObj **ret)
HRESULT create_event_obj(compat_mode_t compat_mode, IHTMLEventObj **ret)
{
HTMLEventObj *event_obj;
event_obj = alloc_event_obj(NULL);
event_obj = alloc_event_obj(NULL, compat_mode);
if(!event_obj)
return E_OUTOFMEMORY;
@ -2682,7 +2682,7 @@ static HRESULT dispatch_event_object(EventTarget *event_target, DOMEvent *event,
} while(iter);
if(!event->event_obj && !event->no_event_obj) {
event_obj_ref = alloc_event_obj(event);
event_obj_ref = alloc_event_obj(event, dispex_compat_mode(&event->dispex));
if(event_obj_ref)
event->event_obj = &event_obj_ref->IHTMLEventObj_iface;
}
@ -2800,7 +2800,7 @@ HRESULT fire_event(HTMLDOMNode *node, const WCHAR *event_name, VARIANT *event_va
}
if(!event_obj) {
event_obj = alloc_event_obj(NULL);
event_obj = alloc_event_obj(NULL, dispex_compat_mode(&node->event_target.dispex));
if(!event_obj)
return E_OUTOFMEMORY;
}

View File

@ -102,7 +102,7 @@ HRESULT fire_event(HTMLDOMNode*,const WCHAR*,VARIANT*,VARIANT_BOOL*) DECLSPEC_HI
void update_doc_cp_events(HTMLDocumentNode*,cp_static_data_t*) DECLSPEC_HIDDEN;
HRESULT doc_init_events(HTMLDocumentNode*) DECLSPEC_HIDDEN;
void detach_events(HTMLDocumentNode *doc) DECLSPEC_HIDDEN;
HRESULT create_event_obj(IHTMLEventObj**) DECLSPEC_HIDDEN;
HRESULT create_event_obj(compat_mode_t,IHTMLEventObj**) DECLSPEC_HIDDEN;
void bind_target_event(HTMLDocumentNode*,EventTarget*,const WCHAR*,IDispatch*) DECLSPEC_HIDDEN;
HRESULT ensure_doc_nsevent_handler(HTMLDocumentNode*,nsIDOMNode*,eventid_t) DECLSPEC_HIDDEN;