Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(459)

Unified Diff: ash/wm/toplevel_window_event_handler.cc

Issue 12441010: Attach panel while dragging to bring it in front of other panels. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Get workspace event handler from workspace controller. Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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,

Powered by Google App Engine
This is Rietveld 408576698