Fix for bugzilla bug 4573, make sure click() fires CLICK and not KHTML_CLICK,
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 30 Aug 2005 22:59:33 +0000 (22:59 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 30 Aug 2005 22:59:33 +0000 (22:59 +0000)
so that the click() method on checkboxes actually works.

Also eliminate the WinIE compatibiilty for event.button and match the
standard DOM behavior instead (like Firefox does).

        Reviewed by darin

        Test cases added: None, since one of the level 2 DOM tests changes to
pass and tests this feature.

        * khtml/ecma/kjs_events.cpp:
        (KJS::DOMMouseEvent::getValueProperty):
        * khtml/html/html_elementimpl.cpp:
        (HTMLElementImpl::click):
        * layout-tests/dom/html/level2/html/HTMLInputElement21-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@10398 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/dom/html/level2/html/HTMLInputElement21-expected.txt
WebCore/ChangeLog-2005-12-19
WebCore/khtml/ecma/kjs_events.cpp
WebCore/khtml/html/html_elementimpl.cpp

index 3970853296df1cfa7899b9c08e53e94ca6c0e2da..1e96a333aeb7d3d4bf5ca6f945ae234ccf4266ca 100644 (file)
@@ -1,3 +1,2 @@
-Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLInputElement21    
-Status:        failure
-Detail:        checkedAfterClick: assertTrue failed
+Test:  http://www.w3.org/2001/DOM-Test-Suite/level2/html/HTMLInputElement21
+Status:        Success
index cce9f532a83e5b59119beb9f84bae2c166304899..30a9146b44a178a59f827d5987518933e8bf0212 100644 (file)
@@ -1,3 +1,22 @@
+2005-08-30  David Hyatt  <hyatt@apple.com>
+
+       Fix for bugzilla bug 4573, make sure click() fires CLICK and not KHTML_CLICK,
+       so that the click() method on checkboxes actually works.
+
+       Also eliminate the WinIE compatibiilty for event.button and match the
+       standard DOM behavior instead (like Firefox does).
+       
+        Reviewed by darin
+
+        Test cases added: None, since one of the level 2 DOM tests changes to
+       pass and tests this feature.
+
+        * khtml/ecma/kjs_events.cpp:
+        (KJS::DOMMouseEvent::getValueProperty):
+        * khtml/html/html_elementimpl.cpp:
+        (HTMLElementImpl::click):
+        * layout-tests/dom/html/level2/html/HTMLInputElement21-expected.txt:
+
 2005-08-30  David Hyatt  <hyatt@apple.com>
 
        Change the value of "element" for khtml-user-select to "ignore".  Also undo the support of "-moz"
index 59849e94713e7aaf737195299cbccf8b57906dde..bc71d51e73e7b20e1f0e04cf540347f0616490ae 100644 (file)
@@ -784,13 +784,8 @@ ValueImp *DOMMouseEvent::getValueProperty(ExecState *exec, int token) const
   case MetaKey:
     return Boolean(event.metaKey());
   case Button:
-  {
-    // Tricky. The DOM (and khtml) use 0 for LMB, 1 for MMB and 2 for RMB
-    // but MSIE uses 1=LMB, 2=RMB, 4=MMB, as a bitfield
-    int domButton = event.button();
-    int button = domButton==0 ? 1 : domButton==1 ? 4 : domButton==2 ? 2 : 0;
-    return Number( (unsigned int)button );
-  }
+    // WinIE uses 1,4,2 for left/middle/right but not for click (just for mousedown/up, maybe others), but we will match the standard DOM.
+    return Number(event.button());
   case ToElement:
     // MSIE extension - "the object toward which the user is moving the mouse pointer"
     if (event.id() == DOM::EventImpl::MOUSEOUT_EVENT)
index 92fde7d5aad6fe984a71eca84d4a0aeff88c461d..ebf84d2ee232208dcfe4ca4f31c1ee781cca4ba5 100644 (file)
@@ -580,7 +580,7 @@ void HTMLElementImpl::click(bool sendMouseEvents, bool showPressedLook)
 
     // always send click
     QMouseEvent clickEvent(QEvent::MouseButtonRelease, QPoint(x,y), Qt::LeftButton, 0);
-    dispatchMouseEvent(&clickEvent, EventImpl::KHTML_CLICK_EVENT);
+    dispatchMouseEvent(&clickEvent, EventImpl::CLICK_EVENT);
 }
 
 // accessKeyAction is used by the accessibility support code