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

Unified Diff: ui/views/view.h

Issue 2813353002: Ensure that the focus ring in the bookmarks bar does not paint outside the parent view. (Closed)
Patch Set: \ Created 3 years, 8 months 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
« no previous file with comments | « ui/views/controls/scroll_view.cc ('k') | ui/views/view.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/view.h
diff --git a/ui/views/view.h b/ui/views/view.h
index bfa107c7eb59451d32fd8c211537fb1c21eda3d0..d1f69707fda4a74ca022439077464b8205df2fb0 100644
--- a/ui/views/view.h
+++ b/ui/views/view.h
@@ -340,9 +340,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
// Compositor.
void SetPaintToLayer(ui::LayerType layer_type = ui::LAYER_TEXTURED);
- // 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.
+ // Please refer to the comments above the DestroyLayerImpl() function for
+ // details.
void DestroyLayer();
// Overridden from ui::LayerOwner:
@@ -1189,6 +1188,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();
@@ -1448,6 +1452,25 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
void UpdateLayerVisibility();
void UpdateChildLayerVisibility(bool visible);
+ enum class LayerChangeNotifyBehavior {
+ // Notify the parent chain about the layer change.
+ NOTIFY,
+ // Don't notify the parent chain about the layer change.
+ DONT_NOTIFY
+ };
+
+ // 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.
+ // The |notify_parents| enum controls whether a notification about the layer
+ // change is sent to the parents.
+ void DestroyLayerImpl(LayerChangeNotifyBehavior notify_parents);
+
+ // Notifies parents about layering changes in the view. This includes layer
+ // creation and destruction.
+ void NotifyParentsOfLayerChange();
+
+
// Orphans the layers in this subtree that are parented to layers outside of
// this subtree.
void OrphanLayers();
« no previous file with comments | « ui/views/controls/scroll_view.cc ('k') | ui/views/view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698