| Index: views/widget/native_widget_views.cc
|
| diff --git a/views/widget/native_widget_views.cc b/views/widget/native_widget_views.cc
|
| index bd0e56ff65036df5e86c853bb5959f810157c44b..d6f14c4cc352a5a998ed4aed2abfef3e7d275cc2 100644
|
| --- a/views/widget/native_widget_views.cc
|
| +++ b/views/widget/native_widget_views.cc
|
| @@ -5,7 +5,6 @@
|
| #include "views/widget/native_widget_views.h"
|
|
|
| #include "ui/gfx/compositor/compositor.h"
|
| -#include "views/desktop/desktop_window_view.h"
|
| #include "views/view.h"
|
| #include "views/views_delegate.h"
|
| #include "views/widget/native_widget_view.h"
|
| @@ -31,7 +30,7 @@ NativeWidgetViews::NativeWidgetViews(internal::NativeWidgetDelegate* delegate)
|
| : delegate_(delegate),
|
| view_(NULL),
|
| active_(false),
|
| - minimized_(false),
|
| + window_state_(ui::SHOW_STATE_DEFAULT),
|
| always_on_top_(false),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(close_widget_factory_(this)),
|
| ownership_(Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET),
|
| @@ -410,15 +409,28 @@ void NativeWidgetViews::SetAlwaysOnTop(bool on_top) {
|
| }
|
|
|
| void NativeWidgetViews::Maximize() {
|
| - NOTIMPLEMENTED();
|
| + if (window_state_ == ui::SHOW_STATE_MAXIMIZED)
|
| + return;
|
| +
|
| + if (window_state_ != ui::SHOW_STATE_MINIMIZED) {
|
| + // Remember bounds and transform to use when unmaximized.
|
| + restored_bounds_ = view_->bounds();
|
| + restored_transform_ = view_->GetTransform();
|
| + }
|
| +
|
| + window_state_ = ui::SHOW_STATE_MAXIMIZED;
|
| + gfx::Size size = GetParentNativeWidget()->GetWindowScreenBounds().size();
|
| + SetBounds(gfx::Rect(gfx::Point(), size));
|
| }
|
|
|
| void NativeWidgetViews::Minimize() {
|
| gfx::Rect view_bounds = view_->bounds();
|
| gfx::Rect parent_bounds = view_->parent()->bounds();
|
|
|
| - restored_bounds_ = view_bounds;
|
| - restored_transform_ = view_->GetTransform();
|
| + if (window_state_ != ui::SHOW_STATE_MAXIMIZED) {
|
| + restored_bounds_ = view_bounds;
|
| + restored_transform_ = view_->GetTransform();
|
| + }
|
|
|
| float aspect_ratio = static_cast<float>(view_bounds.width()) /
|
| static_cast<float>(view_bounds.height());
|
| @@ -441,20 +453,19 @@ void NativeWidgetViews::Minimize() {
|
| (float)target_height / (float)view_bounds.height());
|
| view_->SetTransform(transform);
|
|
|
| - minimized_ = true;
|
| + window_state_ = ui::SHOW_STATE_MINIMIZED;
|
| }
|
|
|
| bool NativeWidgetViews::IsMaximized() const {
|
| - // NOTIMPLEMENTED();
|
| - return false;
|
| + return window_state_ == ui::SHOW_STATE_MAXIMIZED;
|
| }
|
|
|
| bool NativeWidgetViews::IsMinimized() const {
|
| - return minimized_;
|
| + return window_state_ == ui::SHOW_STATE_MINIMIZED;
|
| }
|
|
|
| void NativeWidgetViews::Restore() {
|
| - minimized_ = false;
|
| + window_state_ = ui::SHOW_STATE_NORMAL;
|
| view_->SetBoundsRect(restored_bounds_);
|
| view_->SetTransform(restored_transform_);
|
| }
|
|
|