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

Side by Side Diff: ash/wm/toplevel_window_event_handler.cc

Issue 1898223002: Removes most aura dependencies from WindowResizer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_aura_from_window_state
Patch Set: nit and merge Created 4 years, 8 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 unified diff | Download patch
« no previous file with comments | « ash/wm/stacking_controller.cc ('k') | ash/wm/window_resizer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/wm/toplevel_window_event_handler.h" 5 #include "ash/wm/toplevel_window_event_handler.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/wm/common/wm_event.h" 8 #include "ash/wm/common/wm_event.h"
9 #include "ash/wm/resize_shadow_controller.h" 9 #include "ash/wm/resize_shadow_controller.h"
10 #include "ash/wm/window_resizer.h" 10 #include "ash/wm/window_resizer.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 116
117 DISALLOW_COPY_AND_ASSIGN(ScopedWindowResizer); 117 DISALLOW_COPY_AND_ASSIGN(ScopedWindowResizer);
118 }; 118 };
119 119
120 ToplevelWindowEventHandler::ScopedWindowResizer::ScopedWindowResizer( 120 ToplevelWindowEventHandler::ScopedWindowResizer::ScopedWindowResizer(
121 ToplevelWindowEventHandler* handler, 121 ToplevelWindowEventHandler* handler,
122 WindowResizer* resizer) 122 WindowResizer* resizer)
123 : handler_(handler), 123 : handler_(handler),
124 resizer_(resizer), 124 resizer_(resizer),
125 grabbed_capture_(false) { 125 grabbed_capture_(false) {
126 aura::Window* target = resizer_->GetTarget(); 126 aura::Window* target = resizer_->GetAuraTarget();
127 target->AddObserver(this); 127 target->AddObserver(this);
128 wm::GetWindowState(target)->AddObserver(this); 128 wm::GetWindowState(target)->AddObserver(this);
129 129
130 if (!target->HasCapture()) { 130 if (!target->HasCapture()) {
131 grabbed_capture_ = true; 131 grabbed_capture_ = true;
132 target->SetCapture(); 132 target->SetCapture();
133 } 133 }
134 } 134 }
135 135
136 ToplevelWindowEventHandler::ScopedWindowResizer::~ScopedWindowResizer() { 136 ToplevelWindowEventHandler::ScopedWindowResizer::~ScopedWindowResizer() {
137 aura::Window* target = resizer_->GetTarget(); 137 aura::Window* target = resizer_->GetAuraTarget();
138 target->RemoveObserver(this); 138 target->RemoveObserver(this);
139 wm::GetWindowState(target)->RemoveObserver(this); 139 wm::GetWindowState(target)->RemoveObserver(this);
140 if (grabbed_capture_) 140 if (grabbed_capture_)
141 target->ReleaseCapture(); 141 target->ReleaseCapture();
142 } 142 }
143 143
144 bool ToplevelWindowEventHandler::ScopedWindowResizer::IsMove() const { 144 bool ToplevelWindowEventHandler::ScopedWindowResizer::IsMove() const {
145 return resizer_->details().bounds_change == 145 return resizer_->details().bounds_change ==
146 WindowResizer::kBoundsChange_Repositions; 146 WindowResizer::kBoundsChange_Repositions;
147 } 147 }
148 148
149 void 149 void
150 ToplevelWindowEventHandler::ScopedWindowResizer::OnPreWindowStateTypeChange( 150 ToplevelWindowEventHandler::ScopedWindowResizer::OnPreWindowStateTypeChange(
151 wm::WindowState* window_state, 151 wm::WindowState* window_state,
152 wm::WindowStateType old) { 152 wm::WindowStateType old) {
153 handler_->CompleteDrag(DRAG_COMPLETE); 153 handler_->CompleteDrag(DRAG_COMPLETE);
154 } 154 }
155 155
156 void ToplevelWindowEventHandler::ScopedWindowResizer::OnWindowDestroying( 156 void ToplevelWindowEventHandler::ScopedWindowResizer::OnWindowDestroying(
157 aura::Window* window) { 157 aura::Window* window) {
158 DCHECK_EQ(resizer_->GetTarget(), window); 158 DCHECK_EQ(resizer_->GetAuraTarget(), window);
159 handler_->ResizerWindowDestroyed(); 159 handler_->ResizerWindowDestroyed();
160 } 160 }
161 161
162 // ToplevelWindowEventHandler -------------------------------------------------- 162 // ToplevelWindowEventHandler --------------------------------------------------
163 163
164 ToplevelWindowEventHandler::ToplevelWindowEventHandler() 164 ToplevelWindowEventHandler::ToplevelWindowEventHandler()
165 : first_finger_hittest_(HTNOWHERE), 165 : first_finger_hittest_(HTNOWHERE),
166 in_move_loop_(false), 166 in_move_loop_(false),
167 in_gesture_drag_(false), 167 in_gesture_drag_(false),
168 drag_reverted_(false), 168 drag_reverted_(false),
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 if (event->handled()) 227 if (event->handled())
228 return; 228 return;
229 aura::Window* target = static_cast<aura::Window*>(event->target()); 229 aura::Window* target = static_cast<aura::Window*>(event->target());
230 if (!target->delegate()) 230 if (!target->delegate())
231 return; 231 return;
232 232
233 if (window_resizer_.get() && !in_gesture_drag_) 233 if (window_resizer_.get() && !in_gesture_drag_)
234 return; 234 return;
235 235
236 if (window_resizer_.get() && 236 if (window_resizer_.get() &&
237 window_resizer_->resizer()->GetTarget() != target) { 237 window_resizer_->resizer()->GetAuraTarget() != target) {
238 return; 238 return;
239 } 239 }
240 240
241 if (event->details().touch_points() > 2) { 241 if (event->details().touch_points() > 2) {
242 if (CompleteDrag(DRAG_COMPLETE)) 242 if (CompleteDrag(DRAG_COMPLETE))
243 event->StopPropagation(); 243 event->StopPropagation();
244 return; 244 return;
245 } 245 }
246 246
247 switch (event->type()) { 247 switch (event->type()) {
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 std::unique_ptr<ScopedWindowResizer> resizer(window_resizer_.release()); 470 std::unique_ptr<ScopedWindowResizer> resizer(window_resizer_.release());
471 switch (status) { 471 switch (status) {
472 case DRAG_COMPLETE: 472 case DRAG_COMPLETE:
473 resizer->resizer()->CompleteDrag(); 473 resizer->resizer()->CompleteDrag();
474 break; 474 break;
475 case DRAG_REVERT: 475 case DRAG_REVERT:
476 resizer->resizer()->RevertDrag(); 476 resizer->resizer()->RevertDrag();
477 break; 477 break;
478 case DRAG_RESIZER_WINDOW_DESTROYED: 478 case DRAG_RESIZER_WINDOW_DESTROYED:
479 // We explicitly do not invoke RevertDrag() since that may do things to 479 // We explicitly do not invoke RevertDrag() since that may do things to
480 // WindowResizer::GetTarget() which was destroyed. 480 // WindowResizer::GetAuraTarget() which was destroyed.
481 break; 481 break;
482 } 482 }
483 drag_reverted_ = (status != DRAG_COMPLETE); 483 drag_reverted_ = (status != DRAG_COMPLETE);
484 484
485 first_finger_hittest_ = HTNOWHERE; 485 first_finger_hittest_ = HTNOWHERE;
486 in_gesture_drag_ = false; 486 in_gesture_drag_ = false;
487 if (in_move_loop_) 487 if (in_move_loop_)
488 quit_closure_.Run(); 488 quit_closure_.Run();
489 return true; 489 return true;
490 } 490 }
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 default: 629 default:
630 NOTREACHED(); 630 NOTREACHED();
631 } 631 }
632 } 632 }
633 633
634 void ToplevelWindowEventHandler::ResizerWindowDestroyed() { 634 void ToplevelWindowEventHandler::ResizerWindowDestroyed() {
635 CompleteDrag(DRAG_RESIZER_WINDOW_DESTROYED); 635 CompleteDrag(DRAG_RESIZER_WINDOW_DESTROYED);
636 } 636 }
637 637
638 } // namespace ash 638 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/stacking_controller.cc ('k') | ash/wm/window_resizer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698