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 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, 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 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; HTMLEventObj *event_obj;
@ -770,15 +770,15 @@ static HTMLEventObj *alloc_event_obj(DOMEvent *event)
if(event) if(event)
IDOMEvent_AddRef(&event->IDOMEvent_iface); 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; return event_obj;
} }
HRESULT create_event_obj(IHTMLEventObj **ret) HRESULT create_event_obj(compat_mode_t compat_mode, IHTMLEventObj **ret)
{ {
HTMLEventObj *event_obj; HTMLEventObj *event_obj;
event_obj = alloc_event_obj(NULL); event_obj = alloc_event_obj(NULL, compat_mode);
if(!event_obj) if(!event_obj)
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
@ -2682,7 +2682,7 @@ static HRESULT dispatch_event_object(EventTarget *event_target, DOMEvent *event,
} while(iter); } while(iter);
if(!event->event_obj && !event->no_event_obj) { 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) if(event_obj_ref)
event->event_obj = &event_obj_ref->IHTMLEventObj_iface; 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) { 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) if(!event_obj)
return E_OUTOFMEMORY; 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; void update_doc_cp_events(HTMLDocumentNode*,cp_static_data_t*) DECLSPEC_HIDDEN;
HRESULT doc_init_events(HTMLDocumentNode*) DECLSPEC_HIDDEN; HRESULT doc_init_events(HTMLDocumentNode*) DECLSPEC_HIDDEN;
void detach_events(HTMLDocumentNode *doc) 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; void bind_target_event(HTMLDocumentNode*,EventTarget*,const WCHAR*,IDispatch*) DECLSPEC_HIDDEN;
HRESULT ensure_doc_nsevent_handler(HTMLDocumentNode*,nsIDOMNode*,eventid_t) DECLSPEC_HIDDEN; HRESULT ensure_doc_nsevent_handler(HTMLDocumentNode*,nsIDOMNode*,eventid_t) DECLSPEC_HIDDEN;