2009-07-01 Daniel Erat <derat@google.com>
authoragl@chromium.org <agl@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 2 Jul 2009 00:54:26 +0000 (00:54 +0000)
committeragl@chromium.org <agl@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 2 Jul 2009 00:54:26 +0000 (00:54 +0000)
        Reviewed by David Levin.

        Chromium Linux: Move the scrollbar thumb on middle-click.

        https://bugs.webkit.org/show_bug.cgi?id=26910
        http://code.google.com/p/chromium/issues/detail?id=11976

        Tested by building Chrome and checking that the scrollbar moves as expected.

        * platform/chromium/ScrollbarThemeChromium.cpp:
        * platform/chromium/ScrollbarThemeChromium.h:
        * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
        * platform/chromium/ScrollbarThemeChromiumLinux.h:
        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
        * platform/chromium/ScrollbarThemeChromiumWin.h:

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

WebCore/ChangeLog
WebCore/platform/chromium/ScrollbarThemeChromium.cpp
WebCore/platform/chromium/ScrollbarThemeChromium.h
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h
WebCore/platform/chromium/ScrollbarThemeChromiumWin.cpp
WebCore/platform/chromium/ScrollbarThemeChromiumWin.h

index f9ea46747eab7cbdff35d7a767458a87ec8d8883..8c2346edd2d513cb7cb54f449eeac010fbc26b09 100644 (file)
@@ -1,3 +1,21 @@
+2009-07-01  Daniel Erat  <derat@google.com>
+
+        Reviewed by David Levin.
+
+        Chromium Linux: Move the scrollbar thumb on middle-click.
+
+        https://bugs.webkit.org/show_bug.cgi?id=26910
+        http://code.google.com/p/chromium/issues/detail?id=11976
+
+        Tested by building Chrome and checking that the scrollbar moves as expected.
+
+        * platform/chromium/ScrollbarThemeChromium.cpp:
+        * platform/chromium/ScrollbarThemeChromium.h:
+        * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
+        * platform/chromium/ScrollbarThemeChromiumLinux.h:
+        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
+        * platform/chromium/ScrollbarThemeChromiumWin.h:
+
 2009-07-01  Brady Eidson  <beidson@apple.com>
 
         Reviewed by Sam Weinig.
index 78fc088900b165fe3367aac5ab185107da3bff7d..725de1015ec83d79a16c572781c1d2b3ee639f2e 100644 (file)
@@ -128,9 +128,4 @@ void ScrollbarThemeChromium::paintScrollCorner(ScrollView* view, GraphicsContext
     ScrollbarTheme::paintScrollCorner(view, context, cornerRect);
 }
 
-bool ScrollbarThemeChromium::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
-{
-    return evt.shiftKey() && evt.button() == LeftButton;
-}
-
 } // namespace WebCore
index 71d4817340353f1eae64ff1b40e0842d1622757b..b53d4ae16adbe98f3f86b486c7c7a5ed0858eeb6 100644 (file)
@@ -49,7 +49,6 @@ namespace WebCore {
         virtual IntRect trackRect(Scrollbar*, bool painting = false);
 
         virtual void paintScrollCorner(ScrollView*, GraphicsContext*, const IntRect&);
-        virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&);
 
         virtual void paintTrackBackground(GraphicsContext*, Scrollbar*, const IntRect&);
         virtual void paintTickmarks(GraphicsContext*, Scrollbar*, const IntRect&);
index 6893deaf197c02a28ad5eb1dafe999565a18d9a7..ed8bf3664930e78052223d9bf95e9a97d5b9418e 100644 (file)
@@ -146,6 +146,11 @@ void ScrollbarThemeChromiumLinux::paintThumb(GraphicsContext* gc, Scrollbar* scr
     }
 }
 
+bool ScrollbarThemeChromiumLinux::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
+{
+    return (evt.shiftKey() && evt.button() == LeftButton) || (evt.button() == MiddleButton);
+}
+
 IntSize ScrollbarThemeChromiumLinux::buttonSize(Scrollbar* scrollbar)
 {
     // On Linux, we don't use buttons
index 4e08b07ba66084f87c76b02e90a24a66abe5b256..8e802e7341b775b5955ad0dec0b8eed56f797273 100644 (file)
@@ -42,7 +42,7 @@ namespace WebCore {
         virtual void paintTrackPiece(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
         virtual void paintButton(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
         virtual void paintThumb(GraphicsContext*, Scrollbar*, const IntRect&);
-
+        virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&);
         virtual IntSize buttonSize(Scrollbar*);
         virtual int minimumThumbLength(Scrollbar*);
     };
index 334b76743bc405d9deb31b7c46f0fb608d481b93..d84ad5e30e2250df6bf1781cee0fdab446ef13cc 100644 (file)
@@ -253,6 +253,11 @@ int ScrollbarThemeChromiumWin::getClassicThemeState(Scrollbar* scrollbar, Scroll
     return (scrollbar->pressedPart() == part) ? (DFCS_PUSHED | DFCS_FLAT) : 0;
 }
 
+bool ScrollbarThemeChromiumWin::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
+{
+    return evt.shiftKey() && evt.button() == LeftButton;
+}
+
 IntSize ScrollbarThemeChromiumWin::buttonSize(Scrollbar* scrollbar)
 {
     // Our desired rect is essentially thickness by thickness.
index 5b4d0eaadc78516251baa2cfb9da28ac1343373b..69cfa131c5cb04e9b5210b765cfb481e8ddcb135 100644 (file)
@@ -44,6 +44,7 @@ namespace WebCore {
         virtual void paintTrackPiece(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
         virtual void paintButton(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
         virtual void paintThumb(GraphicsContext*, Scrollbar*, const IntRect&);
+        virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&);
         virtual IntSize buttonSize(Scrollbar*);
 
     private: