Chromium Code Reviews| 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..2666c1db565e3c979d6c3fbfdb3451366e9c3cf5 100644 |
| --- a/ash/wm/toplevel_window_event_handler.cc |
| +++ b/ash/wm/toplevel_window_event_handler.cc |
| @@ -59,6 +59,7 @@ class ToplevelWindowEventHandler::ScopedWindowResizer |
| WindowResizer* resizer); |
| virtual ~ScopedWindowResizer(); |
| + WindowResizer* ReleaseResizer(); |
| WindowResizer* resizer() { return resizer_.get(); } |
| // WindowObserver overrides: |
| @@ -88,6 +89,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,6 +331,21 @@ void ToplevelWindowEventHandler::OnDisplayConfigurationChanging() { |
| } |
| } |
| +void ToplevelWindowEventHandler::PassResizer( |
| + ToplevelWindowEventHandler* new_owner) { |
| + if (!window_resizer_.get()) |
|
flackr
2013/03/14 20:02:15
Needed because in panel_window_resizer_unittest.cc
|
| + return; |
| + 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, |