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

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
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..55740ab11eba6b0cbe931c7a89d4c4674b7c7b80 100644
--- a/ash/wm/toplevel_window_event_handler.cc
+++ b/ash/wm/toplevel_window_event_handler.cc
@@ -72,9 +72,6 @@ class ToplevelWindowEventHandler::ScopedWindowResizer
wm::WindowShowType type) OVERRIDE;
private:
- void AddHandlers(aura::Window* container);
- void RemoveHandlers();
-
ToplevelWindowEventHandler* handler_;
scoped_ptr<WindowResizer> resizer_;
@@ -98,7 +95,6 @@ ToplevelWindowEventHandler::ScopedWindowResizer::ScopedWindowResizer(
}
ToplevelWindowEventHandler::ScopedWindowResizer::~ScopedWindowResizer() {
- RemoveHandlers();
if (resizer_) {
resizer_->GetTarget()->RemoveObserver(this);
wm::GetWindowState(resizer_->GetTarget())->RemoveObserver(this);
@@ -110,12 +106,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 +126,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 +404,10 @@ void ToplevelWindowEventHandler::HandleMousePressed(
ConvertPointToParent(target, event->location()));
CreateScopedWindowResizer(target, location_in_parent, component,
aura::client::WINDOW_MOVE_SOURCE_MOUSE);
+ event->StopPropagation();
varkha 2013/12/13 04:05:14 Just a question. Previously the code was stopping
pkotwicz 2013/12/13 20:28:42 It should not because ToplevelWindowEventHandler a
} else {
window_resizer_.reset();
}
- if (WindowResizer::GetBoundsChangeForWindowComponent(component) != 0)
- event->StopPropagation();
}
void ToplevelWindowEventHandler::HandleMouseReleased(

Powered by Google App Engine
This is Rietveld 408576698