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

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

Issue 2904273002: [mus+ash] Removes WmWindow from RootWindowcontroller implementation (Closed)
Patch Set: [mus+ash] Removes WmWindow from RootWindowcontroller implementation (rebased) Created 3 years, 6 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_util.h ('k') | ash/wm_window.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/window_util.h" 5 #include "ash/wm/window_util.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "ash/ash_constants.h" 9 #include "ash/ash_constants.h"
10 #include "ash/public/cpp/config.h" 10 #include "ash/public/cpp/config.h"
(...skipping 13 matching lines...) Expand all
24 #include "ui/aura/mus/window_tree_client.h" 24 #include "ui/aura/mus/window_tree_client.h"
25 #include "ui/aura/window.h" 25 #include "ui/aura/window.h"
26 #include "ui/aura/window_delegate.h" 26 #include "ui/aura/window_delegate.h"
27 #include "ui/aura/window_event_dispatcher.h" 27 #include "ui/aura/window_event_dispatcher.h"
28 #include "ui/base/hit_test.h" 28 #include "ui/base/hit_test.h"
29 #include "ui/compositor/dip_util.h" 29 #include "ui/compositor/dip_util.h"
30 #include "ui/gfx/geometry/rect.h" 30 #include "ui/gfx/geometry/rect.h"
31 #include "ui/gfx/geometry/size.h" 31 #include "ui/gfx/geometry/size.h"
32 #include "ui/views/view.h" 32 #include "ui/views/view.h"
33 #include "ui/views/widget/widget.h" 33 #include "ui/views/widget/widget.h"
34 #include "ui/wm/core/easy_resize_window_targeter.h"
34 #include "ui/wm/core/window_util.h" 35 #include "ui/wm/core/window_util.h"
35 #include "ui/wm/public/activation_client.h" 36 #include "ui/wm/public/activation_client.h"
36 37
37 namespace ash { 38 namespace ash {
38 namespace wm { 39 namespace wm {
39 40
40 namespace { 41 namespace {
41 42
42 // Moves |window| to the given |root| window's corresponding container, if it is 43 // Moves |window| to the given |root| window's corresponding container, if it is
43 // not already in the same root window. Returns true if |window| was moved. 44 // not already in the same root window. Returns true if |window| was moved.
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 << container->GetName(); 139 << container->GetName();
139 container->SetProperty(kSnapChildrenToPixelBoundary, true); 140 container->SetProperty(kSnapChildrenToPixelBoundary, true);
140 } 141 }
141 142
142 int GetNonClientComponent(aura::Window* window, const gfx::Point& location) { 143 int GetNonClientComponent(aura::Window* window, const gfx::Point& location) {
143 return window->delegate() 144 return window->delegate()
144 ? window->delegate()->GetNonClientComponent(location) 145 ? window->delegate()->GetNonClientComponent(location)
145 : HTNOWHERE; 146 : HTNOWHERE;
146 } 147 }
147 148
149 void SetChildrenUseExtendedHitRegionForWindow(aura::Window* window) {
150 window->SetProperty(kChildrenUseExtendedHitRegion, true);
151 gfx::Insets mouse_extend(-kResizeOutsideBoundsSize, -kResizeOutsideBoundsSize,
152 -kResizeOutsideBoundsSize,
153 -kResizeOutsideBoundsSize);
154 gfx::Insets touch_extend =
155 mouse_extend.Scale(kResizeOutsideBoundsScaleForTouch);
156 // TODO: EasyResizeWindowTargeter makes it so children get events outside
157 // their bounds. This only works in mash when mash is providing the non-client
158 // frame. Mus needs to support an api for the WindowManager that enables
159 // events to be dispatched to windows outside the windows bounds that this
160 // function calls into. http://crbug.com/679056.
161 window->SetEventTargeter(base::MakeUnique<::wm::EasyResizeWindowTargeter>(
162 window, mouse_extend, touch_extend));
163 }
164
165 bool ShouldUseExtendedHitRegionForWindow(const aura::Window* window) {
166 const aura::Window* parent = window->parent();
167 return parent && parent->GetProperty(kChildrenUseExtendedHitRegion);
168 }
169
148 void CloseWidgetForWindow(aura::Window* window) { 170 void CloseWidgetForWindow(aura::Window* window) {
149 if (Shell::GetAshConfig() == Config::MASH && 171 if (Shell::GetAshConfig() == Config::MASH &&
150 window->GetProperty(kWidgetCreationTypeKey) == 172 window->GetProperty(kWidgetCreationTypeKey) ==
151 WidgetCreationType::FOR_CLIENT) { 173 WidgetCreationType::FOR_CLIENT) {
152 // NOTE: in the FOR_CLIENT case there is not necessarily a widget associated 174 // NOTE: in the FOR_CLIENT case there is not necessarily a widget associated
153 // with the window. Mash only creates widgets for top level windows if mash 175 // with the window. Mash only creates widgets for top level windows if mash
154 // renders the non-client frame. 176 // renders the non-client frame.
155 DCHECK(Shell::window_manager_client()); 177 DCHECK(Shell::window_manager_client());
156 Shell::window_manager_client()->RequestClose(window); 178 Shell::window_manager_client()->RequestClose(window);
157 return; 179 return;
(...skipping 12 matching lines...) Expand all
170 window->AddPreTargetHandler(handler); 192 window->AddPreTargetHandler(handler);
171 } 193 }
172 194
173 void RemoveLimitedPreTargetHandlerForWindow(ui::EventHandler* handler, 195 void RemoveLimitedPreTargetHandlerForWindow(ui::EventHandler* handler,
174 aura::Window* window) { 196 aura::Window* window) {
175 window->RemovePreTargetHandler(handler); 197 window->RemovePreTargetHandler(handler);
176 } 198 }
177 199
178 } // namespace wm 200 } // namespace wm
179 } // namespace ash 201 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/window_util.h ('k') | ash/wm_window.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698