Jacek Caban : mshtml: Override default onsubmit action with our submit implementation.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Aug 20 14:30:34 CDT 2014


Module: wine
Branch: master
Commit: 255894c1f1f9f1d5ed1e8f812e5891f3216ce745
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=255894c1f1f9f1d5ed1e8f812e5891f3216ce745

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Aug 20 13:04:28 2014 +0200

mshtml: Override default onsubmit action with our submit implementation.

---

 dlls/mshtml/htmlevent.c |  2 +-
 dlls/mshtml/htmlform.c  | 14 +++++++++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index 484f3f7..33f763e 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -218,7 +218,7 @@ static const event_info_t event_info[] = {
     {selectstartW,       onselectstartW,       EVENTT_MOUSE,  DISPID_EVMETH_ONSELECTSTART,
         EVENT_CANCELABLE},
     {submitW,            onsubmitW,            EVENTT_HTML,   DISPID_EVMETH_ONSUBMIT,
-        EVENT_DEFAULTLISTENER|EVENT_BUBBLE|EVENT_CANCELABLE}
+        EVENT_DEFAULTLISTENER|EVENT_BUBBLE|EVENT_CANCELABLE|EVENT_HASDEFAULTHANDLERS}
 };
 
 eventid_t str_to_eid(LPCWSTR str)
diff --git a/dlls/mshtml/htmlform.c b/dlls/mshtml/htmlform.c
index 10b2df4..df425d1 100644
--- a/dlls/mshtml/htmlform.c
+++ b/dlls/mshtml/htmlform.c
@@ -714,12 +714,24 @@ static HRESULT HTMLFormElement_invoke(HTMLDOMNode *iface,
     return S_OK;
 }
 
+static HRESULT HTMLFormElement_handle_event(HTMLDOMNode *iface, eventid_t eid, nsIDOMEvent *event, BOOL *prevent_default)
+{
+    HTMLFormElement *This = impl_from_HTMLDOMNode(iface);
+
+    if(eid == EVENTID_SUBMIT) {
+        *prevent_default = TRUE;
+        return IHTMLFormElement_submit(&This->IHTMLFormElement_iface);
+    }
+
+    return HTMLElement_handle_event(&This->element.node, eid, event, prevent_default);
+}
+
 static const NodeImplVtbl HTMLFormElementImplVtbl = {
     HTMLFormElement_QI,
     HTMLElement_destructor,
     HTMLElement_cpc,
     HTMLElement_clone,
-    HTMLElement_handle_event,
+    HTMLFormElement_handle_event,
     HTMLElement_get_attr_col,
     NULL,
     NULL,




More information about the wine-cvs mailing list