OLD | NEW |
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/drag_window_resizer.h" | 5 #include "ash/wm/drag_window_resizer.h" |
6 | 6 |
7 #include "ash/display/mouse_cursor_event_filter.h" | 7 #include "ash/display/mouse_cursor_event_filter.h" |
8 #include "ash/root_window_controller.h" | 8 #include "ash/root_window_controller.h" |
9 #include "ash/screen_ash.h" | 9 #include "ash/screen_util.h" |
10 #include "ash/shell.h" | 10 #include "ash/shell.h" |
11 #include "ash/system/tray/system_tray.h" | 11 #include "ash/system/tray/system_tray.h" |
12 #include "ash/system/user/tray_user.h" | 12 #include "ash/system/user/tray_user.h" |
13 #include "ash/wm/coordinate_conversion.h" | 13 #include "ash/wm/coordinate_conversion.h" |
14 #include "ash/wm/drag_window_controller.h" | 14 #include "ash/wm/drag_window_controller.h" |
15 #include "ash/wm/window_state.h" | 15 #include "ash/wm/window_state.h" |
16 #include "ash/wm/window_util.h" | 16 #include "ash/wm/window_util.h" |
17 #include "base/memory/weak_ptr.h" | 17 #include "base/memory/weak_ptr.h" |
18 #include "ui/aura/client/aura_constants.h" | 18 #include "ui/aura/client/aura_constants.h" |
19 #include "ui/aura/env.h" | 19 #include "ui/aura/env.h" |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 gfx::Rect bounds = GetTarget()->bounds(); | 128 gfx::Rect bounds = GetTarget()->bounds(); |
129 if (bounds.width() > size.width()) { | 129 if (bounds.width() > size.width()) { |
130 int diff = bounds.width() - size.width(); | 130 int diff = bounds.width() - size.width(); |
131 bounds.set_x(bounds.x() + diff / 2); | 131 bounds.set_x(bounds.x() + diff / 2); |
132 bounds.set_width(size.width()); | 132 bounds.set_width(size.width()); |
133 } | 133 } |
134 if (bounds.height() > size.height()) | 134 if (bounds.height() > size.height()) |
135 bounds.set_height(size.height()); | 135 bounds.set_height(size.height()); |
136 | 136 |
137 gfx::Rect dst_bounds = | 137 gfx::Rect dst_bounds = |
138 ScreenAsh::ConvertRectToScreen(GetTarget()->parent(), bounds); | 138 ScreenUtil::ConvertRectToScreen(GetTarget()->parent(), bounds); |
139 | 139 |
140 // Adjust the position so that the cursor is on the window. | 140 // Adjust the position so that the cursor is on the window. |
141 if (!dst_bounds.Contains(last_mouse_location_in_screen)) { | 141 if (!dst_bounds.Contains(last_mouse_location_in_screen)) { |
142 if (last_mouse_location_in_screen.x() < dst_bounds.x()) | 142 if (last_mouse_location_in_screen.x() < dst_bounds.x()) |
143 dst_bounds.set_x(last_mouse_location_in_screen.x()); | 143 dst_bounds.set_x(last_mouse_location_in_screen.x()); |
144 else if (last_mouse_location_in_screen.x() > dst_bounds.right()) | 144 else if (last_mouse_location_in_screen.x() > dst_bounds.right()) |
145 dst_bounds.set_x( | 145 dst_bounds.set_x( |
146 last_mouse_location_in_screen.x() - dst_bounds.width()); | 146 last_mouse_location_in_screen.x() - dst_bounds.width()); |
147 } | 147 } |
148 ash::wm::AdjustBoundsToEnsureMinimumWindowVisibility( | 148 ash::wm::AdjustBoundsToEnsureMinimumWindowVisibility( |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 void DragWindowResizer::UpdateDragWindow(const gfx::Rect& bounds, | 182 void DragWindowResizer::UpdateDragWindow(const gfx::Rect& bounds, |
183 bool in_original_root) { | 183 bool in_original_root) { |
184 if (details().window_component != HTCAPTION || !ShouldAllowMouseWarp()) | 184 if (details().window_component != HTCAPTION || !ShouldAllowMouseWarp()) |
185 return; | 185 return; |
186 | 186 |
187 // It's available. Show a phantom window on the display if needed. | 187 // It's available. Show a phantom window on the display if needed. |
188 aura::Window* another_root = | 188 aura::Window* another_root = |
189 GetAnotherRootWindow(GetTarget()->GetRootWindow()); | 189 GetAnotherRootWindow(GetTarget()->GetRootWindow()); |
190 const gfx::Rect root_bounds_in_screen(another_root->GetBoundsInScreen()); | 190 const gfx::Rect root_bounds_in_screen(another_root->GetBoundsInScreen()); |
191 const gfx::Rect bounds_in_screen = | 191 const gfx::Rect bounds_in_screen = |
192 ScreenAsh::ConvertRectToScreen(GetTarget()->parent(), bounds); | 192 ScreenUtil::ConvertRectToScreen(GetTarget()->parent(), bounds); |
193 gfx::Rect bounds_in_another_root = | 193 gfx::Rect bounds_in_another_root = |
194 gfx::IntersectRects(root_bounds_in_screen, bounds_in_screen); | 194 gfx::IntersectRects(root_bounds_in_screen, bounds_in_screen); |
195 const float fraction_in_another_window = | 195 const float fraction_in_another_window = |
196 (bounds_in_another_root.width() * bounds_in_another_root.height()) / | 196 (bounds_in_another_root.width() * bounds_in_another_root.height()) / |
197 static_cast<float>(bounds.width() * bounds.height()); | 197 static_cast<float>(bounds.width() * bounds.height()); |
198 | 198 |
199 if (fraction_in_another_window > 0) { | 199 if (fraction_in_another_window > 0) { |
200 if (!drag_window_controller_) { | 200 if (!drag_window_controller_) { |
201 drag_window_controller_.reset( | 201 drag_window_controller_.reset( |
202 new DragWindowController(GetTarget())); | 202 new DragWindowController(GetTarget())); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 if (!tray_user->TransferWindowToUser(GetTarget())) { | 278 if (!tray_user->TransferWindowToUser(GetTarget())) { |
279 GetTarget()->layer()->SetOpacity(old_opacity); | 279 GetTarget()->layer()->SetOpacity(old_opacity); |
280 return false; | 280 return false; |
281 } | 281 } |
282 RevertDrag(); | 282 RevertDrag(); |
283 return true; | 283 return true; |
284 } | 284 } |
285 | 285 |
286 } // namespace internal | 286 } // namespace internal |
287 } // namespace ash | 287 } // namespace ash |
OLD | NEW |