Commit 277acf61 authored by Brendan McGrath's avatar Brendan McGrath Committed by Alexandre Julliard

mshtml: Pass DOMEvent instead of nsIDOMEvent during handle_event.

parent 6cbe072c
......@@ -829,13 +829,13 @@ static void HTMLAnchorElement_unlink(DispatchEx *dispex)
unlink_ref(&This->nsanchor);
}
static HRESULT HTMLAnchorElement_handle_event(DispatchEx *dispex, eventid_t eid, nsIDOMEvent *event, BOOL *prevent_default)
static HRESULT HTMLAnchorElement_handle_event(DispatchEx *dispex, DOMEvent *event, BOOL *prevent_default)
{
HTMLAnchorElement *This = impl_from_DispatchEx(dispex);
nsAString href_str, target_str;
nsresult nsres;
if(eid == EVENTID_CLICK) {
if(event->event_id == EVENTID_CLICK) {
nsAString_Init(&href_str, NULL);
nsres = nsIDOMHTMLAnchorElement_GetHref(This->nsanchor, &href_str);
if (NS_FAILED(nsres)) {
......@@ -850,14 +850,14 @@ static HRESULT HTMLAnchorElement_handle_event(DispatchEx *dispex, eventid_t eid,
goto fallback;
}
return handle_link_click_event(&This->element, &href_str, &target_str, event, prevent_default);
return handle_link_click_event(&This->element, &href_str, &target_str, event->nsevent, prevent_default);
fallback:
nsAString_Finish(&href_str);
nsAString_Finish(&target_str);
}
return HTMLElement_handle_event(&This->element.node.event_target.dispex, eid, event, prevent_default);
return HTMLElement_handle_event(&This->element.node.event_target.dispex, event, prevent_default);
}
static const NodeImplVtbl HTMLAnchorElementImplVtbl = {
......
......@@ -439,13 +439,13 @@ static void HTMLAreaElement_unlink(DispatchEx *dispex)
unlink_ref(&This->nsarea);
}
static HRESULT HTMLAreaElement_handle_event(DispatchEx *dispex, eventid_t eid, nsIDOMEvent *event, BOOL *prevent_default)
static HRESULT HTMLAreaElement_handle_event(DispatchEx *dispex, DOMEvent *event, BOOL *prevent_default)
{
HTMLAreaElement *This = impl_from_DispatchEx(dispex);
nsAString href_str, target_str;
nsresult nsres;
if(eid == EVENTID_CLICK) {
if(event->event_id == EVENTID_CLICK) {
nsAString_Init(&href_str, NULL);
nsres = nsIDOMHTMLAreaElement_GetHref(This->nsarea, &href_str);
if (NS_FAILED(nsres)) {
......@@ -460,14 +460,14 @@ static HRESULT HTMLAreaElement_handle_event(DispatchEx *dispex, eventid_t eid, n
goto fallback;
}
return handle_link_click_event(&This->element, &href_str, &target_str, event, prevent_default);
return handle_link_click_event(&This->element, &href_str, &target_str, event->nsevent, prevent_default);
fallback:
nsAString_Finish(&href_str);
nsAString_Finish(&target_str);
}
return HTMLElement_handle_event(&This->element.node.event_target.dispex, eid, event, prevent_default);
return HTMLElement_handle_event(&This->element.node.event_target.dispex, event, prevent_default);
}
static const NodeImplVtbl HTMLAreaElementImplVtbl = {
......
......@@ -7001,16 +7001,16 @@ void HTMLElement_bind_event(DispatchEx *dispex, eventid_t eid)
ensure_doc_nsevent_handler(This->node.doc, This->node.nsnode, eid);
}
HRESULT HTMLElement_handle_event(DispatchEx *dispex, eventid_t eid, nsIDOMEvent *event, BOOL *prevent_default)
HRESULT HTMLElement_handle_event(DispatchEx *dispex, DOMEvent *event, BOOL *prevent_default)
{
HTMLElement *This = impl_from_DispatchEx(dispex);
switch(eid) {
switch(event->event_id) {
case EVENTID_KEYDOWN: {
nsIDOMKeyEvent *key_event;
nsresult nsres;
nsres = nsIDOMEvent_QueryInterface(event, &IID_nsIDOMKeyEvent, (void**)&key_event);
nsres = nsIDOMEvent_QueryInterface(event->nsevent, &IID_nsIDOMKeyEvent, (void**)&key_event);
if(NS_SUCCEEDED(nsres)) {
UINT32 code = 0;
......
......@@ -5133,7 +5133,7 @@ static HRESULT dispatch_event_object(EventTarget *event_target, DOMEvent *event,
vtbl = dispex_get_vtbl(&target_chain[i]->dispex);
if(!vtbl->handle_event)
continue;
hres = vtbl->handle_event(&target_chain[i]->dispex, event->event_id, event->nsevent, &prevent_default);
hres = vtbl->handle_event(&target_chain[i]->dispex, event, &prevent_default);
if(FAILED(hres) || event->stop_propagation)
break;
if(prevent_default)
......
......@@ -131,7 +131,7 @@ typedef struct {
nsISupports *(*get_gecko_target)(DispatchEx*);
void (*bind_event)(DispatchEx*,eventid_t);
EventTarget *(*get_parent_event_target)(DispatchEx*);
HRESULT (*handle_event)(DispatchEx*,eventid_t,nsIDOMEvent*,BOOL*);
HRESULT (*handle_event)(DispatchEx*,DOMEvent*,BOOL*);
ConnectionPointContainer *(*get_cp_container)(DispatchEx*);
IHTMLEventObj *(*set_current_event)(DispatchEx*,IHTMLEventObj*);
} event_target_vtbl_t;
......@@ -141,7 +141,7 @@ IHTMLEventObj *default_set_current_event(HTMLInnerWindow*,IHTMLEventObj*);
nsISupports *HTMLElement_get_gecko_target(DispatchEx*);
void HTMLElement_bind_event(DispatchEx*,eventid_t);
EventTarget *HTMLElement_get_parent_event_target(DispatchEx*);
HRESULT HTMLElement_handle_event(DispatchEx*,eventid_t,nsIDOMEvent*,BOOL*);
HRESULT HTMLElement_handle_event(DispatchEx*,DOMEvent*,BOOL*);
ConnectionPointContainer *HTMLElement_get_cp_container(DispatchEx*);
IHTMLEventObj *HTMLElement_set_current_event(DispatchEx*,IHTMLEventObj*);
......
......@@ -944,16 +944,16 @@ static HRESULT HTMLFormElement_invoke(DispatchEx *dispex, DISPID id, LCID lcid,
return S_OK;
}
static HRESULT HTMLFormElement_handle_event(DispatchEx *dispex, eventid_t eid, nsIDOMEvent *event, BOOL *prevent_default)
static HRESULT HTMLFormElement_handle_event(DispatchEx *dispex, DOMEvent *event, BOOL *prevent_default)
{
HTMLFormElement *This = impl_from_DispatchEx(dispex);
if(eid == EVENTID_SUBMIT) {
if(event->event_id == EVENTID_SUBMIT) {
*prevent_default = TRUE;
return IHTMLFormElement_submit(&This->IHTMLFormElement_iface);
}
return HTMLElement_handle_event(&This->element.node.event_target.dispex, eid, event, prevent_default);
return HTMLElement_handle_event(&This->element.node.event_target.dispex, event, prevent_default);
}
static const NodeImplVtbl HTMLFormElementImplVtbl = {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment