Reviewed by Oliver.
authoraliceli1 <aliceli1@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 4 Dec 2006 23:30:19 +0000 (23:30 +0000)
committeraliceli1 <aliceli1@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 4 Dec 2006 23:30:19 +0000 (23:30 +0000)
        Moved some constants from EventHandlerMac.mm to EventHandler.cpp
        Added some platform-specific data members and functions.

        * page/EventHandler.cpp:
        * page/EventHandler.h:
        * page/mac/EventHandlerMac.mm:
        * platform/PlatformMouseEvent.h:
        (WebCore::):
        (WebCore::PlatformMouseEvent::timestamp):
        (WebCore::PlatformMouseEvent::activatedWebView):
        (WebCore::PlatformMouseEvent::type):

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

WebCore/ChangeLog
WebCore/page/EventHandler.cpp
WebCore/page/EventHandler.h
WebCore/page/mac/EventHandlerMac.mm
WebCore/platform/PlatformMouseEvent.h

index 72b19c5a1acc6b21d78537d4bef56a4fac7c2f74..6480e4d80311c6cceef694de545d9419855cc0f3 100644 (file)
@@ -1,3 +1,19 @@
+2006-12-04  Alice Liu  <alice.liu@apple.com>
+
+        Reviewed by Oliver.
+
+        Moved some constants from EventHandlerMac.mm to EventHandler.cpp
+        Added some platform-specific data members and functions.
+
+        * page/EventHandler.cpp:
+        * page/EventHandler.h:
+        * page/mac/EventHandlerMac.mm:
+        * platform/PlatformMouseEvent.h:
+        (WebCore::):
+        (WebCore::PlatformMouseEvent::timestamp):
+        (WebCore::PlatformMouseEvent::activatedWebView):
+        (WebCore::PlatformMouseEvent::type):
+
 2006-12-04  Anders Carlsson  <acarlsson@apple.com>
 
         Reviewed by Darin, Geoff.
index 8409d220edf0068730507fc90bc2da681314282c..c702de46a393084a9616b54b4e8f0482cd2de127 100644 (file)
@@ -61,6 +61,15 @@ namespace WebCore {
 using namespace EventNames;
 using namespace HTMLNames;
 
+// The link drag hysteresis is much larger than the others because there
+// needs to be enough space to cancel the link press without starting a link drag,
+// and because dragging links is rare.
+const float LinkDragHysteresis = 40.0;
+const float ImageDragHysteresis = 5.0;
+const float TextDragHysteresis = 3.0;
+const float GeneralDragHysteresis = 3.0;
+const double TextDragDelay = 0.15;
+
 #ifdef SVG_SUPPORT
 using namespace SVGNames;
 #endif
@@ -81,12 +90,12 @@ EventHandler::EventHandler(Frame* frame)
     , m_capturingMouseEventsNode(0)
     , m_ignoreWheelEvents(false)
     , m_clickCount(0)
+    , m_mouseDownTimestamp(0)
     , m_mouseDownWasInSubframe(false)
     , m_mouseDownMayStartSelect(false)
 #if PLATFORM(MAC)
     , m_mouseDownView(nil)
     , m_sendingEventToSubview(false)
-    , m_mouseDownTimestamp(0)
     , m_activationEventNumber(0)
 #endif
 {
index ed2a0d96ec4a19ecf0144397c33c83e8cc863fc4..e74c18ecc854b3fb311ad66420a00980accd06ca 100644 (file)
@@ -66,6 +66,12 @@ class Widget;
 
 enum SelectionDirection { SelectingNext, SelectingPrevious };
 
+extern const float LinkDragHysteresis;
+extern const float ImageDragHysteresis;
+extern const float TextDragHysteresis;
+extern const float GeneralDragHysteresis;
+extern const double TextDragDelay;
+
 class EventHandler : Noncopyable {
 public:
     EventHandler(Frame*);
@@ -194,6 +200,7 @@ private:
     bool dispatchDragSrcEvent(const AtomicString& eventType, const PlatformMouseEvent&);
 
     bool dragHysteresisExceeded(const FloatPoint&) const;
+    bool dragHysteresisExceeded(const IntPoint&) const;
 
     bool passMousePressEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe);
     bool passMouseMoveEventToSubframe(MouseEventWithHitTestResults&, Frame* subframe);
@@ -255,6 +262,8 @@ private:
     IntSize m_offsetFromResizeCorner;    
     
     IntPoint m_currentMousePosition;
+    IntPoint m_mouseDownPos; // in our view's coords
+    double m_mouseDownTimestamp;
 
     bool m_mouseDownWasInSubframe;
     bool m_mouseDownMayStartSelect;
@@ -263,8 +272,6 @@ private:
     NSView *m_mouseDownView;
     bool m_sendingEventToSubview;
     PlatformMouseEvent m_mouseDown;
-    IntPoint m_mouseDownPos; // in our view's coords
-    double m_mouseDownTimestamp;
     int m_activationEventNumber;
 #endif
 
index b845f01857660a7a855cf21eb1322628e6abbf9b..16abc901f2ce51f1554d100ffa571754e885d067 100644 (file)
@@ -53,15 +53,6 @@ namespace WebCore {
 
 using namespace EventNames;
 
-// The link drag hysteresis is much larger than the others because there
-// needs to be enough space to cancel the link press without starting a link drag,
-// and because dragging links is rare.
-const float LinkDragHysteresis = 40.0;
-const float ImageDragHysteresis = 5.0;
-const float TextDragHysteresis = 3.0;
-const float GeneralDragHysteresis = 3.0;
-const double TextDragDelay = 0.15;
-
 struct EventHandlerDragState {
     RefPtr<Node> m_dragSrc; // element that may be a drag source, for the current mouse gesture
     bool m_dragSrcIsLink;
index fe4c5d7fb5c85d5af9a25a4b5c13bba6dd639ded..51134ba437f5921771a0228fdd0c1bcd0f8185cb 100644 (file)
@@ -60,7 +60,14 @@ namespace WebCore {
 
     // These button numbers match the one used in the DOM API.
     enum MouseButton { LeftButton, MiddleButton, RightButton };
-    
+
+#if PLATFORM(WIN)
+    enum MouseEventType {   MouseMoved,
+                            LeftMouseDown, LeftMouseUp, LeftMouseDragged,
+                            RightMouseDown, RightMouseUp, RightMouseDragged,
+                            MiddleMouseDown, MiddleMouseUp, MiddleMouseDragged };
+#endif
+
     class PlatformMouseEvent {
     public:
         static const struct CurrentEventTag {} currentEvent;
@@ -104,8 +111,11 @@ namespace WebCore {
         PlatformMouseEvent(NSEvent*);
 #endif
 #if PLATFORM(WIN)
-        PlatformMouseEvent(HWND, UINT, WPARAM, LPARAM);
+        PlatformMouseEvent(HWND, UINT, WPARAM, LPARAM, bool activatedWebView = false);
         void setClickCount(int count) { m_clickCount = count; }
+        double timestamp() const { return m_timestamp; }
+        bool activatedWebView() const { return m_activatedWebView; }
+        MouseEventType type() const { return m_type; }
 #endif
 #if PLATFORM(GDK) 
         PlatformMouseEvent(GdkEvent*);
@@ -123,6 +133,12 @@ namespace WebCore {
         bool m_ctrlKey;
         bool m_altKey;
         bool m_metaKey;
+
+#if PLATFORM(WIN)
+        double m_timestamp; // unit: seconds
+        bool m_activatedWebView;
+        MouseEventType m_type;
+#endif
     };
 
 #if PLATFORM(MAC)