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

Unified Diff: ash/wm/toplevel_window_event_handler.cc

Issue 114643003: Use a single ToplevelWindowEventHandler for the ash::Shell (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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
« no previous file with comments | « ash/wm/toplevel_window_event_handler.h ('k') | ash/wm/workspace/workspace_event_handler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 10b2a886edb2212b6f8b837baf128f483dab7e9f..8bce4fd599f0d0f593a26f1a343393268e3ff93f 100644
--- a/ash/wm/toplevel_window_event_handler.cc
+++ b/ash/wm/toplevel_window_event_handler.cc
@@ -72,16 +72,9 @@ class ToplevelWindowEventHandler::ScopedWindowResizer
wm::WindowShowType type) OVERRIDE;
private:
- void AddHandlers(aura::Window* container);
- void RemoveHandlers();
-
ToplevelWindowEventHandler* handler_;
scoped_ptr<WindowResizer> resizer_;
- // If not NULL, this is an additional container that the dragged window has
- // moved to which ScopedWindowResizer has temporarily added observers on.
- aura::Window* target_container_;
-
DISALLOW_COPY_AND_ASSIGN(ScopedWindowResizer);
};
@@ -89,8 +82,7 @@ ToplevelWindowEventHandler::ScopedWindowResizer::ScopedWindowResizer(
ToplevelWindowEventHandler* handler,
WindowResizer* resizer)
: handler_(handler),
- resizer_(resizer),
- target_container_(NULL) {
+ resizer_(resizer) {
if (resizer_) {
resizer_->GetTarget()->AddObserver(this);
wm::GetWindowState(resizer_->GetTarget())->AddObserver(this);
@@ -98,7 +90,6 @@ ToplevelWindowEventHandler::ScopedWindowResizer::ScopedWindowResizer(
}
ToplevelWindowEventHandler::ScopedWindowResizer::~ScopedWindowResizer() {
- RemoveHandlers();
if (resizer_) {
resizer_->GetTarget()->RemoveObserver(this);
wm::GetWindowState(resizer_->GetTarget())->RemoveObserver(this);
@@ -110,12 +101,10 @@ void ToplevelWindowEventHandler::ScopedWindowResizer::OnWindowHierarchyChanging(
if (params.receiver != resizer_->GetTarget())
return;
wm::WindowState* state = wm::GetWindowState(params.receiver);
- if (state->continue_drag_after_reparent()) {
+ if (state->continue_drag_after_reparent())
state->set_continue_drag_after_reparent(false);
- AddHandlers(params.new_parent);
- } else {
+ else
handler_->CompleteDrag(DRAG_COMPLETE, 0);
- }
}
void ToplevelWindowEventHandler::ScopedWindowResizer::OnWindowShowTypeChanged(
@@ -132,37 +121,14 @@ void ToplevelWindowEventHandler::ScopedWindowResizer::OnWindowDestroying(
handler_->ResizerWindowDestroyed();
}
-void ToplevelWindowEventHandler::ScopedWindowResizer::AddHandlers(
- aura::Window* container) {
- RemoveHandlers();
- if (!handler_->owner()->Contains(container)) {
- container->AddPreTargetHandler(handler_);
- container->AddPostTargetHandler(handler_);
- target_container_ = container;
- }
-}
-
-void ToplevelWindowEventHandler::ScopedWindowResizer::RemoveHandlers() {
- if (target_container_) {
- target_container_->RemovePreTargetHandler(handler_);
- target_container_->RemovePostTargetHandler(handler_);
- target_container_ = NULL;
- }
-}
-
-
// ToplevelWindowEventHandler --------------------------------------------------
-ToplevelWindowEventHandler::ToplevelWindowEventHandler(aura::Window* owner)
- : owner_(owner),
- in_move_loop_(false),
+ToplevelWindowEventHandler::ToplevelWindowEventHandler()
+ : in_move_loop_(false),
move_cancelled_(false),
in_gesture_drag_(false),
destroyed_(NULL) {
- aura::client::SetWindowMoveClient(owner, this);
Shell::GetInstance()->display_controller()->AddObserver(this);
- owner->AddPreTargetHandler(this);
- owner->AddPostTargetHandler(this);
}
ToplevelWindowEventHandler::~ToplevelWindowEventHandler() {
@@ -433,11 +399,10 @@ void ToplevelWindowEventHandler::HandleMousePressed(
ConvertPointToParent(target, event->location()));
CreateScopedWindowResizer(target, location_in_parent, component,
aura::client::WINDOW_MOVE_SOURCE_MOUSE);
+ event->StopPropagation();
} else {
window_resizer_.reset();
}
- if (WindowResizer::GetBoundsChangeForWindowComponent(component) != 0)
- event->StopPropagation();
}
void ToplevelWindowEventHandler::HandleMouseReleased(
« no previous file with comments | « ash/wm/toplevel_window_event_handler.h ('k') | ash/wm/workspace/workspace_event_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698