Index: ui/views/view.h |
diff --git a/ui/views/view.h b/ui/views/view.h |
index bfa107c7eb59451d32fd8c211537fb1c21eda3d0..17ec7c369777038ef9cfd05f33516abfe241a53d 100644 |
--- a/ui/views/view.h |
+++ b/ui/views/view.h |
@@ -340,10 +340,23 @@ class VIEWS_EXPORT View : public ui::LayerDelegate, |
// Compositor. |
void SetPaintToLayer(ui::LayerType layer_type = ui::LAYER_TEXTURED); |
+ enum LayerChangeNotifyBehavior { |
sky
2017/04/18 23:02:21
enum class
ananta
2017/04/18 23:14:46
Done.
|
+ // Notify the parent chain about the layer change. |
+ NOTIFY, |
+ // Don't notify the parent chain about the layer change. |
+ DONT_NOTIFY |
+ }; |
+ |
+ // Please refer to the comments above the DestroyLayerImpl() function for |
+ // details. |
+ void DestroyLayer(); |
+ |
// Destroys the layer associated with this view, and reparents any descendants |
// to the destroyed layer's parent. If the view does not currently have a |
// layer, this has no effect. |
- void DestroyLayer(); |
+ // The |notify_parents| enum controls whether a notification about the layer |
+ // change is sent to the parents. |
+ void DestroyLayerImpl(LayerChangeNotifyBehavior notify_parents); |
sky
2017/04/18 23:02:21
Move this (and enum) to the private section in the
ananta
2017/04/18 23:14:46
Done.
|
// Overridden from ui::LayerOwner: |
std::unique_ptr<ui::Layer> RecreateLayer() override; |
@@ -1189,6 +1202,11 @@ class VIEWS_EXPORT View : public ui::LayerDelegate, |
// below layers owned by a view. |
virtual void ReorderChildLayers(ui::Layer* parent_layer); |
+ // Notifies parents about a layer being created or destroyed in a child. An |
+ // example where a subclass may override this method is when it wants to clip |
+ // the child by adding its own layer. |
+ virtual void OnChildLayerChanged(View* child); |
+ |
// Input --------------------------------------------------------------------- |
virtual DragInfo* GetDragInfo(); |
@@ -1515,6 +1533,10 @@ class VIEWS_EXPORT View : public ui::LayerDelegate, |
////////////////////////////////////////////////////////////////////////////// |
+ // Notifies parents about layering changes in the view. This includes layer |
+ // creation and destruction. |
+ void NotifyParentsOfLayerChange(); |
sky
2017/04/18 23:02:21
Move this to the "Accelerated painting" section ab
|
+ |
// Creation and lifetime ----------------------------------------------------- |
// False if this View is owned by its parent - i.e. it will be deleted by its |