Index: ui/views/controls/scroll_view.h |
diff --git a/ui/views/controls/scroll_view.h b/ui/views/controls/scroll_view.h |
index af9111a05cae1a2dd25daba64afe629560c7751e..85c46159b4ce0fd41e9cd03094041ce70b5fb243 100644 |
--- a/ui/views/controls/scroll_view.h |
+++ b/ui/views/controls/scroll_view.h |
@@ -17,6 +17,8 @@ class ScrollOffset; |
} |
namespace views { |
+class ViewObserverTest; |
+ |
namespace test { |
class ScrollViewTestApi; |
} |
@@ -105,6 +107,9 @@ class VIEWS_EXPORT ScrollView : public View, public ScrollBarController { |
void OnGestureEvent(ui::GestureEvent* event) override; |
const char* GetClassName() const override; |
void OnNativeThemeChanged(const ui::NativeTheme* theme) override; |
+ void ViewHierarchyChanged( |
+ const ViewHierarchyChangedDetails& details) override; |
+ void OnChildLayerChanged(View* child) override; |
// ScrollBarController overrides: |
void ScrollToPosition(ScrollBar* source, int position) override; |
@@ -118,6 +123,7 @@ class VIEWS_EXPORT ScrollView : public View, public ScrollBarController { |
private: |
friend class test::ScrollViewTestApi; |
+ FRIEND_TEST_ALL_PREFIXES(ViewObserverTest, ScrollViewChildAddLayerTest); |
class Viewport; |
@@ -162,6 +168,11 @@ class VIEWS_EXPORT ScrollView : public View, public ScrollBarController { |
void AddBorder(); |
void UpdateBorder(); |
+ // Enables view port layering if |child| or any of its descendants has a |
+ // layer. Returns true if yes. We short circuit the recursion if we enabled |
+ // layering. |
+ bool EnableLayeringRecursivelyForChild(View* child); |
+ |
// The current contents and its viewport. |contents_| is contained in |
// |contents_viewport_|. |
View* contents_; |
@@ -204,6 +215,12 @@ class VIEWS_EXPORT ScrollView : public View, public ScrollBarController { |
// Focus ring, if one is installed. |
View* focus_ring_ = nullptr; |
+ // Set to true if we enabled layering for the viewport. |
+ bool viewport_layer_enabled_ = false; |
+ |
+ // Set to true if the scroll with layers feature is enabled. |
+ const bool scroll_with_layers_enabled_ = false; |
sky
2017/04/19 15:03:56
Remove the = false here as this is now assigned in
ananta
2017/04/19 19:04:19
Done.
|
+ |
DISALLOW_COPY_AND_ASSIGN(ScrollView); |
}; |