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/window_resizer.h" | 5 #include "ash/wm/window_resizer.h" |
6 | 6 |
7 #include "ash/screen_ash.h" | 7 #include "ash/screen_util.h" |
8 #include "ash/shell.h" | 8 #include "ash/shell.h" |
9 #include "ash/shell_window_ids.h" | 9 #include "ash/shell_window_ids.h" |
10 #include "ash/wm/coordinate_conversion.h" | 10 #include "ash/wm/coordinate_conversion.h" |
11 #include "ash/wm/dock/docked_window_layout_manager.h" | 11 #include "ash/wm/dock/docked_window_layout_manager.h" |
12 #include "ash/wm/window_state.h" | 12 #include "ash/wm/window_state.h" |
13 #include "ash/wm/window_util.h" | 13 #include "ash/wm/window_util.h" |
14 #include "ui/aura/client/aura_constants.h" | 14 #include "ui/aura/client/aura_constants.h" |
15 #include "ui/aura/root_window.h" | 15 #include "ui/aura/root_window.h" |
16 #include "ui/aura/window.h" | 16 #include "ui/aura/window.h" |
17 #include "ui/aura/window_delegate.h" | 17 #include "ui/aura/window_delegate.h" |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 gfx::Rect work_area = | 142 gfx::Rect work_area = |
143 Shell::GetScreen()->GetDisplayNearestWindow(GetTarget()).work_area(); | 143 Shell::GetScreen()->GetDisplayNearestWindow(GetTarget()).work_area(); |
144 aura::Window* dock_container = Shell::GetContainer( | 144 aura::Window* dock_container = Shell::GetContainer( |
145 GetTarget()->GetRootWindow(), | 145 GetTarget()->GetRootWindow(), |
146 internal::kShellWindowId_DockedContainer); | 146 internal::kShellWindowId_DockedContainer); |
147 internal::DockedWindowLayoutManager* dock_layout = | 147 internal::DockedWindowLayoutManager* dock_layout = |
148 static_cast<internal::DockedWindowLayoutManager*>( | 148 static_cast<internal::DockedWindowLayoutManager*>( |
149 dock_container->layout_manager()); | 149 dock_container->layout_manager()); |
150 | 150 |
151 work_area.Union(dock_layout->docked_bounds()); | 151 work_area.Union(dock_layout->docked_bounds()); |
152 work_area = ScreenAsh::ConvertRectFromScreen(GetTarget()->parent(), | 152 work_area = ScreenUtil::ConvertRectFromScreen(GetTarget()->parent(), |
153 work_area); | 153 work_area); |
154 if (details().size_change_direction & kBoundsChangeDirection_Horizontal) { | 154 if (details().size_change_direction & kBoundsChangeDirection_Horizontal) { |
155 if (IsRightEdge(details().window_component) && | 155 if (IsRightEdge(details().window_component) && |
156 new_bounds.right() < work_area.x() + kMinimumOnScreenArea) { | 156 new_bounds.right() < work_area.x() + kMinimumOnScreenArea) { |
157 int delta = work_area.x() + kMinimumOnScreenArea - new_bounds.right(); | 157 int delta = work_area.x() + kMinimumOnScreenArea - new_bounds.right(); |
158 new_bounds.set_width(new_bounds.width() + delta); | 158 new_bounds.set_width(new_bounds.width() + delta); |
159 } else if (new_bounds.x() > work_area.right() - kMinimumOnScreenArea) { | 159 } else if (new_bounds.x() > work_area.right() - kMinimumOnScreenArea) { |
160 int width = new_bounds.right() - work_area.right() + | 160 int width = new_bounds.right() - work_area.right() + |
161 kMinimumOnScreenArea; | 161 kMinimumOnScreenArea; |
162 new_bounds.set_x(work_area.right() - kMinimumOnScreenArea); | 162 new_bounds.set_x(work_area.right() - kMinimumOnScreenArea); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 wm::GetRootWindowMatching(near_passed_location), | 215 wm::GetRootWindowMatching(near_passed_location), |
216 internal::kShellWindowId_DockedContainer); | 216 internal::kShellWindowId_DockedContainer); |
217 internal::DockedWindowLayoutManager* dock_layout = | 217 internal::DockedWindowLayoutManager* dock_layout = |
218 static_cast<internal::DockedWindowLayoutManager*>( | 218 static_cast<internal::DockedWindowLayoutManager*>( |
219 dock_container->layout_manager()); | 219 dock_container->layout_manager()); |
220 | 220 |
221 gfx::Rect screen_work_area = display.work_area(); | 221 gfx::Rect screen_work_area = display.work_area(); |
222 screen_work_area.Union(dock_layout->docked_bounds()); | 222 screen_work_area.Union(dock_layout->docked_bounds()); |
223 screen_work_area.Inset(kMinimumOnScreenArea, 0); | 223 screen_work_area.Inset(kMinimumOnScreenArea, 0); |
224 gfx::Rect new_bounds_in_screen = | 224 gfx::Rect new_bounds_in_screen = |
225 ScreenAsh::ConvertRectToScreen(parent, new_bounds); | 225 ScreenUtil::ConvertRectToScreen(parent, new_bounds); |
226 if (!screen_work_area.Intersects(new_bounds_in_screen)) { | 226 if (!screen_work_area.Intersects(new_bounds_in_screen)) { |
227 // Make sure that the x origin does not leave the current display. | 227 // Make sure that the x origin does not leave the current display. |
228 new_bounds_in_screen.set_x( | 228 new_bounds_in_screen.set_x( |
229 std::max(screen_work_area.x() - new_bounds.width(), | 229 std::max(screen_work_area.x() - new_bounds.width(), |
230 std::min(screen_work_area.right(), | 230 std::min(screen_work_area.right(), |
231 new_bounds_in_screen.x()))); | 231 new_bounds_in_screen.x()))); |
232 new_bounds = | 232 new_bounds = |
233 ScreenAsh::ConvertRectFromScreen(parent, new_bounds_in_screen); | 233 ScreenUtil::ConvertRectFromScreen(parent, new_bounds_in_screen); |
234 } | 234 } |
235 } | 235 } |
236 | 236 |
237 return new_bounds; | 237 return new_bounds; |
238 } | 238 } |
239 | 239 |
240 // static | 240 // static |
241 bool WindowResizer::IsBottomEdge(int window_component) { | 241 bool WindowResizer::IsBottomEdge(int window_component) { |
242 return window_component == HTBOTTOMLEFT || | 242 return window_component == HTBOTTOMLEFT || |
243 window_component == HTBOTTOM || | 243 window_component == HTBOTTOM || |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 if (height > max_height) { | 349 if (height > max_height) { |
350 height = max_height; | 350 height = max_height; |
351 *delta_y = -y_multiplier * (details().initial_bounds_in_parent.height() - | 351 *delta_y = -y_multiplier * (details().initial_bounds_in_parent.height() - |
352 max_height); | 352 max_height); |
353 } | 353 } |
354 } | 354 } |
355 return height; | 355 return height; |
356 } | 356 } |
357 | 357 |
358 } // namespace ash | 358 } // namespace ash |
OLD | NEW |