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

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

Issue 2699033002: Replace WmWindowObserver with aura::WindowObserver. (Closed)
Patch Set: Check for null images in ShelfWindowWatcher. Created 3 years, 10 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
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/common/wm/wm_toplevel_window_event_handler.h" 5 #include "ash/common/wm/wm_toplevel_window_event_handler.h"
6 6
7 #include "ash/common/wm/window_resizer.h" 7 #include "ash/common/wm/window_resizer.h"
8 #include "ash/common/wm/window_state.h" 8 #include "ash/common/wm/window_state.h"
9 #include "ash/common/wm/window_state_observer.h" 9 #include "ash/common/wm/window_state_observer.h"
10 #include "ash/common/wm/wm_event.h" 10 #include "ash/common/wm/wm_event.h"
11 #include "ash/common/wm_shell.h" 11 #include "ash/common/wm_shell.h"
12 #include "ash/common/wm_window.h" 12 #include "ash/common/wm_window.h"
13 #include "ash/common/wm_window_observer.h" 13 #include "ui/aura/window.h"
14 #include "ui/aura/window_observer.h"
14 #include "ui/base/hit_test.h" 15 #include "ui/base/hit_test.h"
15 #include "ui/events/event.h" 16 #include "ui/events/event.h"
16 17
17 namespace { 18 namespace {
18 const double kMinHorizVelocityForWindowSwipe = 1100; 19 const double kMinHorizVelocityForWindowSwipe = 1100;
19 const double kMinVertVelocityForWindowMinimize = 1000; 20 const double kMinVertVelocityForWindowMinimize = 1000;
20 } 21 }
21 22
22 namespace ash { 23 namespace ash {
23 namespace wm { 24 namespace wm {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 } 60 }
60 61
61 } // namespace 62 } // namespace
62 63
63 // ScopedWindowResizer --------------------------------------------------------- 64 // ScopedWindowResizer ---------------------------------------------------------
64 65
65 // Wraps a WindowResizer and installs an observer on its target window. When 66 // Wraps a WindowResizer and installs an observer on its target window. When
66 // the window is destroyed ResizerWindowDestroyed() is invoked back on the 67 // the window is destroyed ResizerWindowDestroyed() is invoked back on the
67 // WmToplevelWindowEventHandler to clean up. 68 // WmToplevelWindowEventHandler to clean up.
68 class WmToplevelWindowEventHandler::ScopedWindowResizer 69 class WmToplevelWindowEventHandler::ScopedWindowResizer
69 : public WmWindowObserver, 70 : public aura::WindowObserver,
70 public wm::WindowStateObserver { 71 public wm::WindowStateObserver {
71 public: 72 public:
72 ScopedWindowResizer(WmToplevelWindowEventHandler* handler, 73 ScopedWindowResizer(WmToplevelWindowEventHandler* handler,
73 std::unique_ptr<WindowResizer> resizer); 74 std::unique_ptr<WindowResizer> resizer);
74 ~ScopedWindowResizer() override; 75 ~ScopedWindowResizer() override;
75 76
76 // Returns true if the drag moves the window and does not resize. 77 // Returns true if the drag moves the window and does not resize.
77 bool IsMove() const; 78 bool IsMove() const;
78 79
79 WindowResizer* resizer() { return resizer_.get(); } 80 WindowResizer* resizer() { return resizer_.get(); }
80 81
81 // WindowObserver overrides: 82 // WindowObserver overrides:
82 void OnWindowDestroying(WmWindow* window) override; 83 void OnWindowDestroying(aura::Window* window) override;
83 84
84 // WindowStateObserver overrides: 85 // WindowStateObserver overrides:
85 void OnPreWindowStateTypeChange(wm::WindowState* window_state, 86 void OnPreWindowStateTypeChange(wm::WindowState* window_state,
86 wm::WindowStateType type) override; 87 wm::WindowStateType type) override;
87 88
88 private: 89 private:
89 WmToplevelWindowEventHandler* handler_; 90 WmToplevelWindowEventHandler* handler_;
90 std::unique_ptr<WindowResizer> resizer_; 91 std::unique_ptr<WindowResizer> resizer_;
91 92
92 // Whether ScopedWindowResizer grabbed capture. 93 // Whether ScopedWindowResizer grabbed capture.
93 bool grabbed_capture_; 94 bool grabbed_capture_;
94 95
95 DISALLOW_COPY_AND_ASSIGN(ScopedWindowResizer); 96 DISALLOW_COPY_AND_ASSIGN(ScopedWindowResizer);
96 }; 97 };
97 98
98 WmToplevelWindowEventHandler::ScopedWindowResizer::ScopedWindowResizer( 99 WmToplevelWindowEventHandler::ScopedWindowResizer::ScopedWindowResizer(
99 WmToplevelWindowEventHandler* handler, 100 WmToplevelWindowEventHandler* handler,
100 std::unique_ptr<WindowResizer> resizer) 101 std::unique_ptr<WindowResizer> resizer)
101 : handler_(handler), resizer_(std::move(resizer)), grabbed_capture_(false) { 102 : handler_(handler), resizer_(std::move(resizer)), grabbed_capture_(false) {
102 WmWindow* target = resizer_->GetTarget(); 103 WmWindow* target = resizer_->GetTarget();
103 target->AddObserver(this); 104 target->aura_window()->AddObserver(this);
104 target->GetWindowState()->AddObserver(this); 105 target->GetWindowState()->AddObserver(this);
105 106
106 if (!target->HasCapture()) { 107 if (!target->HasCapture()) {
107 grabbed_capture_ = true; 108 grabbed_capture_ = true;
108 target->SetCapture(); 109 target->SetCapture();
109 } 110 }
110 } 111 }
111 112
112 WmToplevelWindowEventHandler::ScopedWindowResizer::~ScopedWindowResizer() { 113 WmToplevelWindowEventHandler::ScopedWindowResizer::~ScopedWindowResizer() {
113 WmWindow* target = resizer_->GetTarget(); 114 WmWindow* target = resizer_->GetTarget();
114 target->RemoveObserver(this); 115 target->aura_window()->RemoveObserver(this);
115 target->GetWindowState()->RemoveObserver(this); 116 target->GetWindowState()->RemoveObserver(this);
116 if (grabbed_capture_) 117 if (grabbed_capture_)
117 target->ReleaseCapture(); 118 target->ReleaseCapture();
118 } 119 }
119 120
120 bool WmToplevelWindowEventHandler::ScopedWindowResizer::IsMove() const { 121 bool WmToplevelWindowEventHandler::ScopedWindowResizer::IsMove() const {
121 return resizer_->details().bounds_change == 122 return resizer_->details().bounds_change ==
122 WindowResizer::kBoundsChange_Repositions; 123 WindowResizer::kBoundsChange_Repositions;
123 } 124 }
124 125
125 void WmToplevelWindowEventHandler::ScopedWindowResizer:: 126 void WmToplevelWindowEventHandler::ScopedWindowResizer::
126 OnPreWindowStateTypeChange(wm::WindowState* window_state, 127 OnPreWindowStateTypeChange(wm::WindowState* window_state,
127 wm::WindowStateType old) { 128 wm::WindowStateType old) {
128 handler_->CompleteDrag(DragResult::SUCCESS); 129 handler_->CompleteDrag(DragResult::SUCCESS);
129 } 130 }
130 131
131 void WmToplevelWindowEventHandler::ScopedWindowResizer::OnWindowDestroying( 132 void WmToplevelWindowEventHandler::ScopedWindowResizer::OnWindowDestroying(
132 WmWindow* window) { 133 aura::Window* window) {
133 DCHECK_EQ(resizer_->GetTarget(), window); 134 DCHECK_EQ(resizer_->GetTarget(), WmWindow::Get(window));
134 handler_->ResizerWindowDestroyed(); 135 handler_->ResizerWindowDestroyed();
135 } 136 }
136 137
137 // WmToplevelWindowEventHandler 138 // WmToplevelWindowEventHandler
138 // -------------------------------------------------- 139 // --------------------------------------------------
139 140
140 WmToplevelWindowEventHandler::WmToplevelWindowEventHandler(WmShell* shell) 141 WmToplevelWindowEventHandler::WmToplevelWindowEventHandler(WmShell* shell)
141 : shell_(shell), first_finger_hittest_(HTNOWHERE) { 142 : shell_(shell), first_finger_hittest_(HTNOWHERE) {
142 shell_->AddDisplayObserver(this); 143 shell_->AddDisplayObserver(this);
143 } 144 }
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 void WmToplevelWindowEventHandler::ResizerWindowDestroyed() { 541 void WmToplevelWindowEventHandler::ResizerWindowDestroyed() {
541 CompleteDrag(DragResult::WINDOW_DESTROYED); 542 CompleteDrag(DragResult::WINDOW_DESTROYED);
542 } 543 }
543 544
544 void WmToplevelWindowEventHandler::OnDisplayConfigurationChanging() { 545 void WmToplevelWindowEventHandler::OnDisplayConfigurationChanging() {
545 CompleteDrag(DragResult::REVERT); 546 CompleteDrag(DragResult::REVERT);
546 } 547 }
547 548
548 } // namespace wm 549 } // namespace wm
549 } // namespace ash 550 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/wm/window_positioning_utils.cc ('k') | ash/common/wm/workspace/multi_window_resize_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698