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
+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.
ScrollbarTheme::paintScrollCorner(view, context, cornerRect);
}
-bool ScrollbarThemeChromium::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
-{
- return evt.shiftKey() && evt.button() == LeftButton;
-}
-
} // 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&);
}
}
+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
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*);
};
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.
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: