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

Unified Diff: ash/root_window_controller.cc

Issue 13896026: Stick windows to sides of workspaces (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Dock with zero width (rebase) Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/root_window_controller.h ('k') | ash/shell_window_ids.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/root_window_controller.cc
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
index 30e3ba71060f95708ebd4e41995dc81fe59a420b..8e1d400eadca2be0c7f939e0cdc4f32a8e5c1203 100644
--- a/ash/root_window_controller.cc
+++ b/ash/root_window_controller.cc
@@ -25,6 +25,7 @@
#include "ash/touch/touch_observer_hud.h"
#include "ash/wm/base_layout_manager.h"
#include "ash/wm/boot_splash_screen.h"
+#include "ash/wm/dock/docked_window_layout_manager.h"
#include "ash/wm/panels/panel_layout_manager.h"
#include "ash/wm/property_util.h"
#include "ash/wm/root_window_layout_manager.h"
@@ -111,6 +112,7 @@ void ReparentAllWindows(aura::RootWindow* src, aura::RootWindow* dst) {
// Set of windows to move.
const int kContainerIdsToMove[] = {
internal::kShellWindowId_DefaultContainer,
+ internal::kShellWindowId_DockedContainer,
internal::kShellWindowId_PanelContainer,
internal::kShellWindowId_AlwaysOnTopContainer,
internal::kShellWindowId_SystemModalContainer,
@@ -166,6 +168,7 @@ namespace internal {
RootWindowController::RootWindowController(aura::RootWindow* root_window)
: root_window_(root_window),
root_window_layout_(NULL),
+ docked_layout_manager_(NULL),
panel_layout_manager_(NULL),
touch_observer_hud_(NULL) {
SetRootWindowController(root_window, this);
@@ -271,6 +274,15 @@ void RootWindowController::InitForPrimaryDisplay() {
shelf_.reset(new ash::ShelfWidget(
shelf_container, status_container, workspace_controller()));
+ // Create Docked windows layout manager
+ aura::Window* docked_container = GetContainer(
+ internal::kShellWindowId_DockedContainer);
+ docked_layout_manager_ =
+ new internal::DockedWindowLayoutManager(docked_container);
+ docked_container_handler_.reset(
+ new ToplevelWindowEventHandler(docked_container));
+ docked_container->SetLayoutManager(docked_layout_manager_);
+
// Create Panel layout manager
aura::Window* panel_container = GetContainer(
internal::kShellWindowId_PanelContainer);
@@ -325,6 +337,8 @@ void RootWindowController::CreateSystemBackground(
void RootWindowController::OnLauncherCreated() {
if (panel_layout_manager_)
panel_layout_manager_->SetLauncher(shelf_->launcher());
+ if (docked_layout_manager_)
+ docked_layout_manager_->SetLauncher(shelf_->launcher());
}
void RootWindowController::ShowLauncher() {
@@ -536,6 +550,12 @@ void RootWindowController::CreateContainersInRootWindow(
always_on_top_container);
SetUsesScreenCoordinates(always_on_top_container);
+ aura::Window* docked_container = CreateContainer(
+ kShellWindowId_DockedContainer,
+ "DockedContainer",
+ non_lock_screen_containers);
+ SetUsesScreenCoordinates(docked_container);
+
aura::Window* panel_container = CreateContainer(
kShellWindowId_PanelContainer,
"PanelContainer",
« no previous file with comments | « ash/root_window_controller.h ('k') | ash/shell_window_ids.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698