From: Gabriel Ivăncescu gabrielopcode@gmail.com
We don't use Gecko for these events, so we have to handle them ourselves.
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlevent.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index a7445a5edd0..313ab726f7a 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -245,6 +245,22 @@ static eventid_t attr_to_eid(const WCHAR *str) return EVENTID_LAST; }
+static event_type_t get_non_gecko_event_type(const WCHAR *type) +{ + /* Keep these sorted by their string from event_types[] */ + static const event_type_t list[] = { + EVENT_TYPE_MESSAGE, + EVENT_TYPE_STORAGE, + }; + unsigned i; + + for(i = 0; i < ARRAY_SIZE(list); i++) + if(!wcsicmp(type, event_types[list[i]])) + return list[i]; + + return EVENT_TYPE_EVENT; +} + const WCHAR *get_event_name(eventid_t eid) { return event_info[eid].name; @@ -3072,7 +3088,7 @@ HRESULT create_document_event_str(HTMLDocumentNode *doc, const WCHAR *type, IDOM }
event = alloc_event(nsevent, dispex_compat_mode(&doc->node.event_target.dispex), - EVENT_TYPE_EVENT, EVENTID_LAST); + get_non_gecko_event_type(type), EVENTID_LAST); nsIDOMEvent_Release(nsevent); if(!event) return E_OUTOFMEMORY;