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:
parent
f4ad57d431
commit
e61e196843
|
@ -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,
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue