Index: ash/frame/custom_frame_view_ash.cc |
diff --git a/ash/frame/custom_frame_view_ash.cc b/ash/frame/custom_frame_view_ash.cc |
index 3aa503cc186fd755f32e30f55aba11070c469e77..508f830acff01434cf459bfd8e4b6420c4658ca2 100644 |
--- a/ash/frame/custom_frame_view_ash.cc |
+++ b/ash/frame/custom_frame_view_ash.cc |
@@ -153,6 +153,7 @@ class CustomFrameViewAsh::HeaderView |
// views::View: |
virtual void Layout() OVERRIDE; |
virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; |
+ virtual void ChildPreferredSizeChanged(views::View* child) OVERRIDE; |
// ShellObserver: |
virtual void OnMaximizeModeStarted() OVERRIDE; |
@@ -287,6 +288,17 @@ void CustomFrameViewAsh::HeaderView::OnPaint(gfx::Canvas* canvas) { |
header_painter_->PaintHeader(canvas, header_mode); |
} |
+void CustomFrameViewAsh::HeaderView:: |
+ ChildPreferredSizeChanged(views::View* child) { |
+ // FrameCaptionButtonContainerView animates the visibility changes in |
+ // UpdateSizeButtonVisibility(false). Due to this a new size is not available |
+ // until the completion of the animation. Layout it response to the preferred |
+ // size changes. |
+ if (child != caption_button_container_) |
+ return; |
+ parent()->Layout(); |
+} |
+ |
/////////////////////////////////////////////////////////////////////////////// |
// CustomFrameViewAsh::HeaderView, ShellObserver overrides: |