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

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

Issue 2897993003: chromeos: converts WindowResizer to aura::Window (Closed)
Patch Set: remove include from exo Created 3 years, 7 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/window_resizer.cc ('k') | ash/wm/workspace/multi_window_resize_controller.cc » ('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/wm_toplevel_window_event_handler.h" 5 #include "ash/wm/wm_toplevel_window_event_handler.h"
6 6
7 #include "ash/shell_port.h" 7 #include "ash/shell_port.h"
8 #include "ash/wm/window_resizer.h" 8 #include "ash/wm/window_resizer.h"
9 #include "ash/wm/window_state.h" 9 #include "ash/wm/window_state.h"
10 #include "ash/wm/window_state_observer.h" 10 #include "ash/wm/window_state_observer.h"
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 // Whether ScopedWindowResizer grabbed capture. 93 // Whether ScopedWindowResizer grabbed capture.
94 bool grabbed_capture_; 94 bool grabbed_capture_;
95 95
96 DISALLOW_COPY_AND_ASSIGN(ScopedWindowResizer); 96 DISALLOW_COPY_AND_ASSIGN(ScopedWindowResizer);
97 }; 97 };
98 98
99 WmToplevelWindowEventHandler::ScopedWindowResizer::ScopedWindowResizer( 99 WmToplevelWindowEventHandler::ScopedWindowResizer::ScopedWindowResizer(
100 WmToplevelWindowEventHandler* handler, 100 WmToplevelWindowEventHandler* handler,
101 std::unique_ptr<WindowResizer> resizer) 101 std::unique_ptr<WindowResizer> resizer)
102 : handler_(handler), resizer_(std::move(resizer)), grabbed_capture_(false) { 102 : handler_(handler), resizer_(std::move(resizer)), grabbed_capture_(false) {
103 WmWindow* target = resizer_->GetTarget(); 103 aura::Window* target = resizer_->GetTarget();
104 target->aura_window()->AddObserver(this); 104 target->AddObserver(this);
105 target->GetWindowState()->AddObserver(this); 105 GetWindowState(target)->AddObserver(this);
106 106
107 if (!target->HasCapture()) { 107 if (!target->HasCapture()) {
108 grabbed_capture_ = true; 108 grabbed_capture_ = true;
109 target->SetCapture(); 109 target->SetCapture();
110 } 110 }
111 } 111 }
112 112
113 WmToplevelWindowEventHandler::ScopedWindowResizer::~ScopedWindowResizer() { 113 WmToplevelWindowEventHandler::ScopedWindowResizer::~ScopedWindowResizer() {
114 WmWindow* target = resizer_->GetTarget(); 114 aura::Window* target = resizer_->GetTarget();
115 target->aura_window()->RemoveObserver(this); 115 target->RemoveObserver(this);
116 target->GetWindowState()->RemoveObserver(this); 116 GetWindowState(target)->RemoveObserver(this);
117 if (grabbed_capture_) 117 if (grabbed_capture_)
118 target->ReleaseCapture(); 118 target->ReleaseCapture();
119 } 119 }
120 120
121 bool WmToplevelWindowEventHandler::ScopedWindowResizer::IsMove() const { 121 bool WmToplevelWindowEventHandler::ScopedWindowResizer::IsMove() const {
122 return resizer_->details().bounds_change == 122 return resizer_->details().bounds_change ==
123 WindowResizer::kBoundsChange_Repositions; 123 WindowResizer::kBoundsChange_Repositions;
124 } 124 }
125 125
126 void WmToplevelWindowEventHandler::ScopedWindowResizer:: 126 void WmToplevelWindowEventHandler::ScopedWindowResizer::
127 OnPreWindowStateTypeChange(wm::WindowState* window_state, 127 OnPreWindowStateTypeChange(wm::WindowState* window_state,
128 wm::WindowStateType old) { 128 wm::WindowStateType old) {
129 handler_->CompleteDrag(DragResult::SUCCESS); 129 handler_->CompleteDrag(DragResult::SUCCESS);
130 } 130 }
131 131
132 void WmToplevelWindowEventHandler::ScopedWindowResizer::OnWindowDestroying( 132 void WmToplevelWindowEventHandler::ScopedWindowResizer::OnWindowDestroying(
133 aura::Window* window) { 133 aura::Window* window) {
134 DCHECK_EQ(resizer_->GetTarget(), WmWindow::Get(window)); 134 DCHECK_EQ(resizer_->GetTarget(), window);
135 handler_->ResizerWindowDestroyed(); 135 handler_->ResizerWindowDestroyed();
136 } 136 }
137 137
138 // WmToplevelWindowEventHandler 138 // WmToplevelWindowEventHandler
139 // -------------------------------------------------- 139 // --------------------------------------------------
140 140
141 WmToplevelWindowEventHandler::WmToplevelWindowEventHandler() 141 WmToplevelWindowEventHandler::WmToplevelWindowEventHandler()
142 : first_finger_hittest_(HTNOWHERE) { 142 : first_finger_hittest_(HTNOWHERE) {
143 ShellPort::Get()->AddDisplayObserver(this); 143 ShellPort::Get()->AddDisplayObserver(this);
144 } 144 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 WmWindow* target) { 197 WmWindow* target) {
198 if (event->handled()) 198 if (event->handled())
199 return; 199 return;
200 if (!target->HasNonClientArea()) 200 if (!target->HasNonClientArea())
201 return; 201 return;
202 202
203 if (window_resizer_.get() && !in_gesture_drag_) 203 if (window_resizer_.get() && !in_gesture_drag_)
204 return; 204 return;
205 205
206 if (window_resizer_.get() && 206 if (window_resizer_.get() &&
207 window_resizer_->resizer()->GetTarget() != target) { 207 window_resizer_->resizer()->GetTarget() != target->aura_window()) {
208 return; 208 return;
209 } 209 }
210 210
211 if (event->details().touch_points() > 2) { 211 if (event->details().touch_points() > 2) {
212 if (CompleteDrag(DragResult::SUCCESS)) 212 if (CompleteDrag(DragResult::SUCCESS))
213 event->StopPropagation(); 213 event->StopPropagation();
214 return; 214 return;
215 } 215 }
216 216
217 switch (event->type()) { 217 switch (event->type()) {
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 } 355 }
356 356
357 bool WmToplevelWindowEventHandler::AttemptToStartDrag( 357 bool WmToplevelWindowEventHandler::AttemptToStartDrag(
358 WmWindow* window, 358 WmWindow* window,
359 const gfx::Point& point_in_parent, 359 const gfx::Point& point_in_parent,
360 int window_component, 360 int window_component,
361 aura::client::WindowMoveSource source, 361 aura::client::WindowMoveSource source,
362 const EndClosure& end_closure) { 362 const EndClosure& end_closure) {
363 if (window_resizer_.get()) 363 if (window_resizer_.get())
364 return false; 364 return false;
365 std::unique_ptr<WindowResizer> resizer( 365 std::unique_ptr<WindowResizer> resizer(CreateWindowResizer(
366 CreateWindowResizer(window, point_in_parent, window_component, source)); 366 window->aura_window(), point_in_parent, window_component, source));
367 if (!resizer) 367 if (!resizer)
368 return false; 368 return false;
369 369
370 end_closure_ = end_closure; 370 end_closure_ = end_closure;
371 window_resizer_.reset(new ScopedWindowResizer(this, std::move(resizer))); 371 window_resizer_.reset(new ScopedWindowResizer(this, std::move(resizer)));
372 372
373 pre_drag_window_bounds_ = window->GetBounds(); 373 pre_drag_window_bounds_ = window->GetBounds();
374 in_gesture_drag_ = (source == aura::client::WINDOW_MOVE_SOURCE_TOUCH); 374 in_gesture_drag_ = (source == aura::client::WINDOW_MOVE_SOURCE_TOUCH);
375 return true; 375 return true;
376 } 376 }
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 void WmToplevelWindowEventHandler::ResizerWindowDestroyed() { 541 void WmToplevelWindowEventHandler::ResizerWindowDestroyed() {
542 CompleteDrag(DragResult::WINDOW_DESTROYED); 542 CompleteDrag(DragResult::WINDOW_DESTROYED);
543 } 543 }
544 544
545 void WmToplevelWindowEventHandler::OnDisplayConfigurationChanging() { 545 void WmToplevelWindowEventHandler::OnDisplayConfigurationChanging() {
546 CompleteDrag(DragResult::REVERT); 546 CompleteDrag(DragResult::REVERT);
547 } 547 }
548 548
549 } // namespace wm 549 } // namespace wm
550 } // namespace ash 550 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/window_resizer.cc ('k') | ash/wm/workspace/multi_window_resize_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698