From: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> Signed-off-by: Gabriel Ivăncescu <gabrielopcode(a)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; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/856