Commit 8c60d0da authored by Yuichiro Hanada's avatar Yuichiro Hanada Committed by Commit Bot

Add new container windows, ArcVirtualKeyboardContainer and ArcImeWindowParentContainer.

ARC IMEs don't cover the shelf and a user uses the ime menu bubble or
the ime menu in the system menu to switch IMEs because ARC IMEs may not
support switching IME from their UI.
Therefore, ARC IMEs should be placed behind the shelf container.
This CL adds new container window for ARC IMEs.

Bug: 845079
Change-Id: I22fb3bba33e99685d8427c97255258a92a24c8b8
Reviewed-on: https://chromium-review.googlesource.com/1088716Reviewed-by: default avatarMitsuru Oshima <oshima@chromium.org>
Reviewed-by: default avatarYusuke Sato <yusukes@chromium.org>
Commit-Queue: Yuichiro Hanada <yhanada@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566629}
parent b706d155
...@@ -60,6 +60,15 @@ enum ShellWindowId { ...@@ -60,6 +60,15 @@ enum ShellWindowId {
// The container for the app list in tablet mode. // The container for the app list in tablet mode.
kShellWindowId_AppListTabletModeContainer, kShellWindowId_AppListTabletModeContainer,
// The parent container that holds the ARC IME container and windows created
// by ARC IME other than the virtual keyboard window.
// This container window is to ensure that the ARC IME window is stacked above
// top-level windows and the app list window but below the shelf.
kShellWindowId_ArcImeWindowParentContainer,
// The container for Virtual Keyboard from ARC IMEs.
kShellWindowId_ArcVirtualKeyboardContainer,
// The container for the shelf. // The container for the shelf.
kShellWindowId_ShelfContainer, kShellWindowId_ShelfContainer,
...@@ -156,6 +165,8 @@ const int32_t kAllShellContainerIds[] = { ...@@ -156,6 +165,8 @@ const int32_t kAllShellContainerIds[] = {
kShellWindowId_AlwaysOnTopContainer, kShellWindowId_AlwaysOnTopContainer,
kShellWindowId_AppListContainer, kShellWindowId_AppListContainer,
kShellWindowId_AppListTabletModeContainer, kShellWindowId_AppListTabletModeContainer,
kShellWindowId_ArcImeWindowParentContainer,
kShellWindowId_ArcVirtualKeyboardContainer,
kShellWindowId_ShelfContainer, kShellWindowId_ShelfContainer,
kShellWindowId_ShelfBubbleContainer, kShellWindowId_ShelfBubbleContainer,
kShellWindowId_PanelContainer, kShellWindowId_PanelContainer,
......
...@@ -886,6 +886,17 @@ void RootWindowController::CreateContainers() { ...@@ -886,6 +886,17 @@ void RootWindowController::CreateContainers() {
wm::SetSnapsChildrenToPhysicalPixelBoundary(app_list_container); wm::SetSnapsChildrenToPhysicalPixelBoundary(app_list_container);
app_list_container->SetProperty(::wm::kUsesScreenCoordinatesKey, true); app_list_container->SetProperty(::wm::kUsesScreenCoordinatesKey, true);
aura::Window* arc_ime_parent_container = CreateContainer(
kShellWindowId_ArcImeWindowParentContainer, "ArcImeWindowParentContainer",
non_lock_screen_containers);
wm::SetSnapsChildrenToPhysicalPixelBoundary(arc_ime_parent_container);
arc_ime_parent_container->SetProperty(::wm::kUsesScreenCoordinatesKey, true);
aura::Window* arc_vk_container =
CreateContainer(kShellWindowId_ArcVirtualKeyboardContainer,
"ArcVirtualKeyboardContainer", arc_ime_parent_container);
wm::SetSnapsChildrenToPhysicalPixelBoundary(arc_vk_container);
arc_vk_container->SetProperty(::wm::kUsesScreenCoordinatesKey, true);
aura::Window* shelf_container_parent = lock_screen_related_containers; aura::Window* shelf_container_parent = lock_screen_related_containers;
aura::Window* shelf_container = CreateContainer( aura::Window* shelf_container = CreateContainer(
kShellWindowId_ShelfContainer, "ShelfContainer", shelf_container_parent); kShellWindowId_ShelfContainer, "ShelfContainer", shelf_container_parent);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment