| Index: ash/wm/toplevel_window_event_handler.cc
|
| diff --git a/ash/wm/toplevel_window_event_handler.cc b/ash/wm/toplevel_window_event_handler.cc
|
| index 4f0826986bba4e2188281a0a6d36e0e844fbf746..1cda284dcf74b71e658281d35fb8a45bbf8f5e20 100644
|
| --- a/ash/wm/toplevel_window_event_handler.cc
|
| +++ b/ash/wm/toplevel_window_event_handler.cc
|
| @@ -59,6 +59,8 @@ class ToplevelWindowEventHandler::ScopedWindowResizer
|
| WindowResizer* resizer);
|
| virtual ~ScopedWindowResizer();
|
|
|
| + WindowResizer* ReleaseResizer();
|
| +
|
| WindowResizer* resizer() { return resizer_.get(); }
|
|
|
| // WindowObserver overrides:
|
| @@ -88,6 +90,13 @@ ToplevelWindowEventHandler::ScopedWindowResizer::~ScopedWindowResizer() {
|
| resizer_->GetTarget()->RemoveObserver(this);
|
| }
|
|
|
| +WindowResizer*
|
| +ToplevelWindowEventHandler::ScopedWindowResizer::ReleaseResizer() {
|
| + if (resizer_.get())
|
| + resizer_->GetTarget()->RemoveObserver(this);
|
| + return resizer_.release();
|
| +}
|
| +
|
| void ToplevelWindowEventHandler::ScopedWindowResizer::OnWindowPropertyChanged(
|
| aura::Window* window,
|
| const void* key,
|
| @@ -323,13 +332,27 @@ void ToplevelWindowEventHandler::OnDisplayConfigurationChanging() {
|
| }
|
| }
|
|
|
| +void ToplevelWindowEventHandler::PassResizer(WindowResizerOwner* new_owner) {
|
| + DCHECK(window_resizer_.get());
|
| + new_owner->AcceptResizer(window_resizer_->ReleaseResizer(),
|
| + in_gesture_drag_);
|
| + window_resizer_.reset();
|
| +}
|
| +
|
| +void ToplevelWindowEventHandler::AcceptResizer(WindowResizer* resizer,
|
| + bool in_gesture_drag) {
|
| + window_resizer_.reset(new ScopedWindowResizer(this, resizer));
|
| + in_gesture_drag_ = in_gesture_drag;
|
| +}
|
| +
|
| void ToplevelWindowEventHandler::CreateScopedWindowResizer(
|
| aura::Window* window,
|
| const gfx::Point& point_in_parent,
|
| int window_component) {
|
| window_resizer_.reset();
|
| WindowResizer* resizer =
|
| - CreateWindowResizer(window, point_in_parent, window_component).release();
|
| + CreateWindowResizer(this, window, point_in_parent,
|
| + window_component).release();
|
| if (resizer)
|
| window_resizer_.reset(new ScopedWindowResizer(this, resizer));
|
| }
|
|
|