Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1063)

Unified Diff: third_party/WebKit/Source/platform/scroll/ScrollableArea.h

Issue 2467693002: Implement overlay scrollbar fade out for non-composited scrollers. (Closed)
Patch Set: overlay-scrollbar-mouse-capture now works on Mac Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/scroll/ScrollableArea.h
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollableArea.h b/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
index f92a1452535f92f51bd36b7a627cfe147a10025c..02d4cbbea552245f6bf83f95b0d456cb4fbad1bc 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
+++ b/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
@@ -107,8 +107,10 @@ class PLATFORM_EXPORT ScrollableArea : public GarbageCollectedMixin {
void mouseEnteredContentArea() const;
void mouseExitedContentArea() const;
void mouseMovedInContentArea() const;
- void mouseEnteredScrollbar(Scrollbar&) const;
- void mouseExitedScrollbar(Scrollbar&) const;
+ void mouseEnteredScrollbar(Scrollbar&);
+ void mouseExitedScrollbar(Scrollbar&);
+ void mouseCapturedScrollbar();
+ void mouseReleasedScrollbar();
void contentAreaDidShow() const;
void contentAreaDidHide() const;
@@ -227,7 +229,6 @@ class PLATFORM_EXPORT ScrollableArea : public GarbageCollectedMixin {
virtual bool shouldSuspendScrollAnimations() const { return true; }
virtual void scrollbarStyleChanged() {}
- virtual void scrollbarVisibilityChanged() {}
virtual bool scrollbarsCanBeActive() const = 0;
// Returns the bounding box of this scrollable area, in the coordinate system
@@ -256,7 +257,6 @@ class PLATFORM_EXPORT ScrollableArea : public GarbageCollectedMixin {
// Overlay scrollbars can "fade-out" when inactive.
virtual bool scrollbarsHidden() const;
virtual void setScrollbarsHidden(bool);
- virtual void didChangeScrollbarsHidden(){};
// Returns true if the GraphicsLayer tree needs to be rebuilt.
virtual bool updateAfterCompositingChange() { return false; }
@@ -347,10 +347,12 @@ class PLATFORM_EXPORT ScrollableArea : public GarbageCollectedMixin {
EAGERLY_FINALIZE();
DECLARE_VIRTUAL_TRACE();
- virtual void clearScrollAnimators();
+ virtual void clearScrollableArea();
virtual ScrollAnchor* scrollAnchor() { return nullptr; }
+ void fadeOverlayScrollbarsTimerFired(TimerBase*);
skobes 2016/11/02 21:02:43 Can this be private?
+
protected:
ScrollableArea();
@@ -379,6 +381,8 @@ class PLATFORM_EXPORT ScrollableArea : public GarbageCollectedMixin {
m_verticalScrollbarNeedsPaintInvalidation = false;
m_scrollCornerNeedsPaintInvalidation = false;
}
+ void showOverlayScrollbars();
+ virtual void scrollbarVisibilityChanged() {}
private:
void programmaticScrollHelper(const ScrollOffset&, ScrollBehavior);
@@ -396,6 +400,8 @@ class PLATFORM_EXPORT ScrollableArea : public GarbageCollectedMixin {
mutable Member<ScrollAnimatorBase> m_scrollAnimator;
mutable Member<ProgrammaticScrollAnimator> m_programmaticScrollAnimator;
+ std::unique_ptr<Timer<ScrollableArea>> m_fadeOverlayScrollbarsTimer;
+
unsigned m_scrollbarOverlayColorTheme : 2;
unsigned m_scrollOriginChanged : 1;
@@ -404,6 +410,7 @@ class PLATFORM_EXPORT ScrollableArea : public GarbageCollectedMixin {
unsigned m_verticalScrollbarNeedsPaintInvalidation : 1;
unsigned m_scrollCornerNeedsPaintInvalidation : 1;
unsigned m_scrollbarsHidden : 1;
+ unsigned m_scrollbarCaptured : 1;
// There are 6 possible combinations of writing mode and direction. Scroll
// origin will be non-zero in the x or y axis if there is any reversed

Powered by Google App Engine
This is Rietveld 408576698