From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlevent.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index f08d4f6568c..1ee8ce3db34 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -3057,6 +3057,7 @@ HRESULT create_event_from_nsevent(nsIDOMEvent *nsevent, compat_mode_t compat_mod
HRESULT create_document_event_str(HTMLDocumentNode *doc, const WCHAR *type, IDOMEvent **ret_event) { + eventid_t event_id = EVENTID_LAST; nsIDOMEvent *nsevent; DOMEvent *event; nsAString nsstr; @@ -3070,7 +3071,18 @@ HRESULT create_document_event_str(HTMLDocumentNode *doc, const WCHAR *type, IDOM return E_FAIL; }
- event = alloc_event(nsevent, dispex_compat_mode(&doc->node.event_target.dispex), EVENTID_LAST); + nsAString_Init(&nsstr, NULL); + nsres = nsIDOMEvent_GetType(nsevent, &nsstr); + if(NS_SUCCEEDED(nsres)) { + const WCHAR *t; + nsAString_GetData(&nsstr, &t); + event_id = str_to_eid(t); + if(event_id == EVENTID_LAST) + FIXME("unknown event type %s\n", debugstr_w(t)); + } + nsAString_Finish(&nsstr); + + event = alloc_event(nsevent, dispex_compat_mode(&doc->node.event_target.dispex), event_id); nsIDOMEvent_Release(nsevent); if(!event) return E_OUTOFMEMORY;