Jacek Caban : mshtml: Call default event handlers only for events that have them.

Alexandre Julliard julliard at winehq.org
Wed Aug 3 12:48:11 CDT 2011


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Aug  3 12:34:01 2011 +0200

mshtml: Call default event handlers only for events that have them.

---

 dlls/mshtml/htmlevent.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index 9ab07a4..80d3d12 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -141,7 +141,7 @@ typedef struct {
 #define EVENT_FORWARDBODY        0x0004
 #define EVENT_NODEHANDLER        0x0008
 #define EVENT_CANCELABLE         0x0010
-#define EVENT_SETONINIT          0x0020
+#define EVENT_HASDEFAULTHANDLERS 0x0020
 
 static const event_info_t event_info[] = {
     {beforeunloadW,      onbeforeunloadW,      EVENTT_NONE,   DISPID_EVMETH_ONBEFOREUNLOAD,
@@ -151,7 +151,7 @@ static const event_info_t event_info[] = {
     {changeW,            onchangeW,            EVENTT_HTML,   DISPID_EVMETH_ONCHANGE,
         EVENT_DEFAULTLISTENER|EVENT_BUBBLE},
     {clickW,             onclickW,             EVENTT_MOUSE,  DISPID_EVMETH_ONCLICK,
-        EVENT_DEFAULTLISTENER|EVENT_BUBBLE|EVENT_CANCELABLE|EVENT_SETONINIT},
+        EVENT_DEFAULTLISTENER|EVENT_BUBBLE|EVENT_CANCELABLE|EVENT_HASDEFAULTHANDLERS},
     {contextmenuW,       oncontextmenuW,       EVENTT_MOUSE,  DISPID_EVMETH_ONCONTEXTMENU,
         EVENT_BUBBLE|EVENT_CANCELABLE},
     {dblclickW,          ondblclickW,          EVENTT_MOUSE,  DISPID_EVMETH_ONDBLCLICK,
@@ -1062,7 +1062,7 @@ void fire_event(HTMLDocumentNode *doc, eventid_t eid, BOOL set_event, nsIDOMNode
     if(event_obj)
         IHTMLEventObj_Release(&event_obj->IHTMLEventObj_iface);
 
-    if(!prevent_default) {
+    if(!prevent_default && (event_info[eid].flags & EVENT_HASDEFAULTHANDLERS)) {
         nsIDOMNode_AddRef(target);
         nsnode = target;
 
@@ -1382,7 +1382,7 @@ HRESULT doc_init_events(HTMLDocumentNode *doc)
     init_nsevents(doc);
 
     for(i=0; i < EVENTID_LAST; i++) {
-        if(event_info[i].flags & EVENT_SETONINIT) {
+        if(event_info[i].flags & EVENT_HASDEFAULTHANDLERS) {
             hres = ensure_nsevent_handler(doc, NULL, NULL, i);
             if(FAILED(hres))
                 return hres;




More information about the wine-cvs mailing list