From: Jacek Caban jacek@codeweavers.com
--- dlls/mshtml/htmlevent.c | 16 ++++++++-------- dlls/mshtml/mshtml_private.h | 1 + dlls/mshtml/tests/documentmode.js | 2 ++ 3 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index c0ad93facb3..ed7c4d6ce45 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -3576,16 +3576,16 @@ static const dispex_static_data_vtbl_t DOMEvent_dispex_vtbl = { .unlink = DOMEvent_unlink };
-static const tid_t DOMEvent_iface_tids[] = { +static const tid_t Event_iface_tids[] = { IDOMEvent_tid, 0 };
-static dispex_static_data_t DOMEvent_dispex = { - "Event", - &DOMEvent_dispex_vtbl, - DispDOMEvent_tid, - DOMEvent_iface_tids +dispex_static_data_t Event_dispex = { + .id = PROT_Event, + .vtbl = &DOMEvent_dispex_vtbl, + .disp_tid = DispDOMEvent_tid, + .iface_tids = Event_iface_tids, };
static const dispex_static_data_vtbl_t DOMUIEvent_dispex_vtbl = { @@ -3667,7 +3667,7 @@ static dispex_static_data_t DOMPageTransitionEvent_dispex = { "PageTransitionEvent", &DOMPageTransitionEvent_dispex_vtbl, DispDOMEvent_tid, - DOMEvent_iface_tids, + Event_iface_tids, DOMPageTransitionEvent_init_dispex_info };
@@ -3786,7 +3786,7 @@ static void fill_parent_ui_event(nsIDOMEvent *nsevent, DOMUIEvent *ui_event) static DOMEvent *generic_event_ctor(void *iface, nsIDOMEvent *nsevent, eventid_t event_id, HTMLInnerWindow *script_global, compat_mode_t compat_mode) { - return event_ctor(sizeof(DOMEvent), &DOMEvent_dispex, nsevent, event_id, script_global, compat_mode); + return event_ctor(sizeof(DOMEvent), &Event_dispex, nsevent, event_id, script_global, compat_mode); }
static DOMEvent *ui_event_ctor(void *iface, nsIDOMEvent *nsevent, eventid_t event_id, HTMLInnerWindow *script_global, diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index f600917187b..96a2cac4070 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -417,6 +417,7 @@ typedef struct { X(Document) \ X(DocumentType) \ X(Element) \ + X(Event) \ X(HTMLAnchorElement) \ X(HTMLAreaElement) \ X(HTMLBodyElement) \ diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js index a4893e8f71e..f192393ac34 100644 --- a/dlls/mshtml/tests/documentmode.js +++ b/dlls/mshtml/tests/documentmode.js @@ -3241,4 +3241,6 @@ sync_test("prototypes", function() { check(document.createEventObject(), MSEventObj.prototype, "event obj"); check(MSEventObj.prototype, Object.prototype, "event obj prototype"); } + check(document.createEvent("Event"), Event.prototype, "event"); + check(Event.prototype, Object.prototype, "event prototype"); });