Chromium Code Reviews| Index: chrome/browser/ui/views/frame/app_non_client_frame_view_ash.cc |
| diff --git a/chrome/browser/ui/views/frame/app_non_client_frame_view_ash.cc b/chrome/browser/ui/views/frame/app_non_client_frame_view_ash.cc |
| index 2b1bfa71bc56285621d4ce6a58588adba1754029..72a64c1128ee4d5578495aa4378cc8e1df5c135b 100644 |
| --- a/chrome/browser/ui/views/frame/app_non_client_frame_view_ash.cc |
| +++ b/chrome/browser/ui/views/frame/app_non_client_frame_view_ash.cc |
| @@ -42,10 +42,13 @@ const int kShadowHeightStretch = -1; |
| class AppNonClientFrameViewAsh::ControlView |
| : public views::View, public views::ButtonListener { |
| public: |
| + // TODO(skuhne): If we keep the "always maximized" experiment we might want to |
| + // make this function be able to work with a |restore_button_| which is NULL. |
| explicit ControlView(AppNonClientFrameViewAsh* owner) : |
| owner_(owner), |
| close_button_(new views::ImageButton(this)), |
| - restore_button_(new ash::FrameMaximizeButton(this, owner_)) |
| + restore_button_(new ash::FrameMaximizeButton(this, owner_)), |
| + original_maximize_button_width_(0) |
| { |
| close_button_->SetAccessibleName( |
| l10n_util::GetStringUTF16(IDS_ACCNAME_CLOSE)); |
| @@ -69,6 +72,18 @@ class AppNonClientFrameViewAsh::ControlView |
| virtual ~ControlView() {} |
| virtual void Layout() OVERRIDE { |
| + if (ash::Shell::IsForcedMaximizeMode()) { |
| + // TODO(skuhne): If this experiment would get persued, it would be better |
| + // to check here the |restore_button_|'s visibility. Furthermore we |
| + // should change |shadow_| to a new bitmap which can host only a single |
| + // button. |
| + gfx::Size size = restore_button_->bounds().size(); |
| + if (size.width()) { |
| + original_maximize_button_width_ = size.width(); |
| + size.set_width(0); |
| + restore_button_->SetSize(size); |
| + } |
| + } |
| restore_button_->SetPosition(gfx::Point(kShadowStart, 0)); |
| close_button_->SetPosition(gfx::Point(kShadowStart + |
| restore_button_->width() - kButtonOverlap, 0)); |
| @@ -92,7 +107,7 @@ class AppNonClientFrameViewAsh::ControlView |
| } |
| virtual gfx::Size GetPreferredSize() OVERRIDE { |
| - return gfx::Size(shadow_->width(), |
| + return gfx::Size(shadow_->width() - original_maximize_button_width_, |
|
sky
2013/05/01 21:01:56
Can you use restore_button_->GetPreferredSize().wi
Mr4D (OOO till 08-26)
2013/05/01 22:48:49
Yepp - it works. Done.
|
| shadow_->height() + kShadowHeightStretch); |
| } |
| @@ -153,6 +168,9 @@ class AppNonClientFrameViewAsh::ControlView |
| const gfx::ImageSkia* control_base_; |
| const gfx::ImageSkia* shadow_; |
| + // The original size of the maximize button. |
| + int original_maximize_button_width_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(ControlView); |
| }; |