diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-18 16:26:10 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-18 16:26:10 +0000 |
commit | 1ca79d4a521fdad4067298110a4f346f0629f6a3 (patch) | |
tree | a34c08c64ef5827e14cbd4d77f488e3622bf55df /ash/root_window_controller.cc | |
parent | 388f6742bf424d0f7c627250d222465f60e7698d (diff) | |
download | chromium_src-1ca79d4a521fdad4067298110a4f346f0629f6a3.zip chromium_src-1ca79d4a521fdad4067298110a4f346f0629f6a3.tar.gz chromium_src-1ca79d4a521fdad4067298110a4f346f0629f6a3.tar.bz2 |
Snap widgets to pixel boundary on ash
Introduced SnapToPixelLayoutManager and used where it makes sense.
WorkspaceLayoutManager uses WindowState, so it's the property is manually set there.
This depends on the following CL:
https://codereview.chromium.org/375693006/
BUG=391822
Review URL: https://codereview.chromium.org/357063002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284119 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/root_window_controller.cc')
-rw-r--r-- | ash/root_window_controller.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc index 60018d5..26b925c0 100644 --- a/ash/root_window_controller.cc +++ b/ash/root_window_controller.cc @@ -856,6 +856,10 @@ void RootWindowController::InitLayoutManagers() { new DockedWindowLayoutManager(docked_container, workspace_controller()); docked_container->SetLayoutManager(docked_layout_manager_); + // Installs SnapLayoutManager to containers who set the + // |kSnapsChildrenToPhysicalPixelBoundary| property. + wm::InstallSnapLayoutManagerToContainers(root_window); + // Create Panel layout manager aura::Window* panel_container = GetContainer(kShellWindowId_PanelContainer); panel_layout_manager_ = new PanelLayoutManager(panel_container); @@ -955,6 +959,7 @@ void RootWindowController::CreateContainersInRootWindow( "DefaultContainer", non_lock_screen_containers); ::wm::SetChildWindowVisibilityChangesAnimated(default_container); + wm::SetSnapsChildrenToPhysicalPixelBoundary(default_container); SetUsesScreenCoordinates(default_container); SetUsesEasyResizeTargeter(default_container); @@ -963,6 +968,7 @@ void RootWindowController::CreateContainersInRootWindow( "AlwaysOnTopContainer", non_lock_screen_containers); ::wm::SetChildWindowVisibilityChangesAnimated(always_on_top_container); + wm::SetSnapsChildrenToPhysicalPixelBoundary(always_on_top_container); SetUsesScreenCoordinates(always_on_top_container); aura::Window* docked_container = CreateContainer( @@ -970,6 +976,7 @@ void RootWindowController::CreateContainersInRootWindow( "DockedContainer", non_lock_screen_containers); ::wm::SetChildWindowVisibilityChangesAnimated(docked_container); + wm::SetSnapsChildrenToPhysicalPixelBoundary(docked_container); SetUsesScreenCoordinates(docked_container); SetUsesEasyResizeTargeter(docked_container); @@ -977,6 +984,7 @@ void RootWindowController::CreateContainersInRootWindow( CreateContainer(kShellWindowId_ShelfContainer, "ShelfContainer", non_lock_screen_containers); + wm::SetSnapsChildrenToPhysicalPixelBoundary(shelf_container); SetUsesScreenCoordinates(shelf_container); DescendantShouldStayInSameRootWindow(shelf_container); @@ -984,12 +992,14 @@ void RootWindowController::CreateContainersInRootWindow( kShellWindowId_PanelContainer, "PanelContainer", non_lock_screen_containers); + wm::SetSnapsChildrenToPhysicalPixelBoundary(panel_container); SetUsesScreenCoordinates(panel_container); aura::Window* shelf_bubble_container = CreateContainer(kShellWindowId_ShelfBubbleContainer, "ShelfBubbleContainer", non_lock_screen_containers); + wm::SetSnapsChildrenToPhysicalPixelBoundary(shelf_bubble_container); SetUsesScreenCoordinates(shelf_bubble_container); DescendantShouldStayInSameRootWindow(shelf_bubble_container); @@ -997,12 +1007,14 @@ void RootWindowController::CreateContainersInRootWindow( CreateContainer(kShellWindowId_AppListContainer, "AppListContainer", non_lock_screen_containers); + wm::SetSnapsChildrenToPhysicalPixelBoundary(app_list_container); SetUsesScreenCoordinates(app_list_container); aura::Window* modal_container = CreateContainer( kShellWindowId_SystemModalContainer, "SystemModalContainer", non_lock_screen_containers); + wm::SetSnapsChildrenToPhysicalPixelBoundary(modal_container); modal_container->SetLayoutManager( new SystemModalContainerLayoutManager(modal_container)); ::wm::SetChildWindowVisibilityChangesAnimated(modal_container); @@ -1015,6 +1027,7 @@ void RootWindowController::CreateContainersInRootWindow( kShellWindowId_LockScreenContainer, "LockScreenContainer", lock_screen_containers); + wm::SetSnapsChildrenToPhysicalPixelBoundary(lock_container); if (CommandLine::ForCurrentProcess()->HasSwitch( switches::kAshDisableLockLayoutManager)) { lock_container->SetLayoutManager( @@ -1029,6 +1042,7 @@ void RootWindowController::CreateContainersInRootWindow( kShellWindowId_LockSystemModalContainer, "LockSystemModalContainer", lock_screen_containers); + wm::SetSnapsChildrenToPhysicalPixelBoundary(lock_modal_container); lock_modal_container->SetLayoutManager( new SystemModalContainerLayoutManager(lock_modal_container)); ::wm::SetChildWindowVisibilityChangesAnimated(lock_modal_container); @@ -1039,6 +1053,7 @@ void RootWindowController::CreateContainersInRootWindow( CreateContainer(kShellWindowId_StatusContainer, "StatusContainer", lock_screen_related_containers); + wm::SetSnapsChildrenToPhysicalPixelBoundary(status_container); SetUsesScreenCoordinates(status_container); DescendantShouldStayInSameRootWindow(status_container); @@ -1047,6 +1062,7 @@ void RootWindowController::CreateContainersInRootWindow( "SettingBubbleContainer", lock_screen_related_containers); ::wm::SetChildWindowVisibilityChangesAnimated(settings_bubble_container); + wm::SetSnapsChildrenToPhysicalPixelBoundary(settings_bubble_container); SetUsesScreenCoordinates(settings_bubble_container); DescendantShouldStayInSameRootWindow(settings_bubble_container); @@ -1055,6 +1071,7 @@ void RootWindowController::CreateContainersInRootWindow( "MenuContainer", lock_screen_related_containers); ::wm::SetChildWindowVisibilityChangesAnimated(menu_container); + wm::SetSnapsChildrenToPhysicalPixelBoundary(menu_container); SetUsesScreenCoordinates(menu_container); aura::Window* drag_drop_container = CreateContainer( @@ -1062,18 +1079,22 @@ void RootWindowController::CreateContainersInRootWindow( "DragImageAndTooltipContainer", lock_screen_related_containers); ::wm::SetChildWindowVisibilityChangesAnimated(drag_drop_container); + wm::SetSnapsChildrenToPhysicalPixelBoundary(drag_drop_container); SetUsesScreenCoordinates(drag_drop_container); aura::Window* overlay_container = CreateContainer( kShellWindowId_OverlayContainer, "OverlayContainer", lock_screen_related_containers); + wm::SetSnapsChildrenToPhysicalPixelBoundary(overlay_container); SetUsesScreenCoordinates(overlay_container); aura::Window* virtual_keyboard_parent_container = CreateContainer( kShellWindowId_VirtualKeyboardParentContainer, "VirtualKeyboardParentContainer", root_window); + wm::SetSnapsChildrenToPhysicalPixelBoundary( + virtual_keyboard_parent_container); SetUsesScreenCoordinates(virtual_keyboard_parent_container); #if defined(OS_CHROMEOS) |