Index: ui/aura/window.cc |
diff --git a/ui/aura/window.cc b/ui/aura/window.cc |
index d2735184b9c53690a14f18cb429355d01a4e27ab..e20038697043ebe802b06aa969fc9be212bccd32 100644 |
--- a/ui/aura/window.cc |
+++ b/ui/aura/window.cc |
@@ -96,18 +96,18 @@ bool Window::IsVisible() const { |
void Window::Maximize() { |
if (UpdateShowStateAndRestoreBounds(ui::SHOW_STATE_MAXIMIZED)) |
- SetBounds(gfx::Screen::GetMonitorWorkAreaNearestWindow(this)); |
+ SetBoundsInternal(gfx::Screen::GetMonitorWorkAreaNearestWindow(this)); |
} |
void Window::Fullscreen() { |
if (UpdateShowStateAndRestoreBounds(ui::SHOW_STATE_FULLSCREEN)) |
- SetBounds(gfx::Screen::GetMonitorAreaNearestWindow(this)); |
+ SetBoundsInternal(gfx::Screen::GetMonitorAreaNearestWindow(this)); |
} |
void Window::Restore() { |
if (show_state_ != ui::SHOW_STATE_NORMAL) { |
show_state_ = ui::SHOW_STATE_NORMAL; |
- SetBounds(restore_bounds_); |
+ SetBoundsInternal(restore_bounds_); |
restore_bounds_.SetRect(0, 0, 0, 0); |
} |
} |
@@ -138,21 +138,16 @@ void Window::SetLayoutManager(LayoutManager* layout_manager) { |
} |
void Window::SetBounds(const gfx::Rect& new_bounds) { |
- // TODO: funnel this through the Desktop. |
- gfx::Rect old_bounds = bounds(); |
- bool was_move = old_bounds.size() == new_bounds.size(); |
- layer_->SetBounds(new_bounds); |
- |
- if (layout_manager_.get()) |
- layout_manager_->OnWindowResized(); |
- if (delegate_) |
- delegate_->OnBoundsChanged(old_bounds, new_bounds); |
- if (IsVisible()) { |
- if (was_move) |
- layer()->ScheduleDraw(); |
- else |
- layer()->SchedulePaint(gfx::Rect()); |
+ if (show_state_ == ui::SHOW_STATE_MAXIMIZED || |
+ show_state_ == ui::SHOW_STATE_FULLSCREEN) { |
+ restore_bounds_ = new_bounds; |
+ return; |
} |
+ SetBoundsInternal(new_bounds); |
+} |
+ |
+void Window::SetMinimumSize(const gfx::Size& minimum_size) { |
+ minimum_size_ = minimum_size; |
} |
const gfx::Rect& Window::bounds() const { |
@@ -376,6 +371,24 @@ internal::RootWindow* Window::GetRoot() { |
return parent_ ? parent_->GetRoot() : NULL; |
} |
+void Window::SetBoundsInternal(const gfx::Rect& new_bounds) { |
+ // TODO: funnel this through the Desktop. |
Ben Goodger (Google)
2011/10/14 15:40:05
You can remove this comment now.
oshima
2011/10/15 02:10:50
Done.
|
+ const gfx::Rect old_bounds = bounds(); |
+ bool was_move = old_bounds.size() == new_bounds.size(); |
+ layer_->SetBounds(new_bounds); |
+ |
+ if (layout_manager_.get()) |
+ layout_manager_->OnWindowResized(); |
+ if (delegate_) |
+ delegate_->OnBoundsChanged(old_bounds, new_bounds); |
+ if (IsVisible()) { |
+ if (was_move) |
+ layer()->ScheduleDraw(); |
+ else |
+ layer()->SchedulePaint(gfx::Rect()); |
+ } |
+} |
+ |
void Window::SetVisible(bool visible) { |
bool was_visible = IsVisible(); |
layer_->SetVisible(visible); |