diff options
author | flackr@chromium.org <flackr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-22 14:28:56 +0000 |
---|---|---|
committer | flackr@chromium.org <flackr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-22 14:28:56 +0000 |
commit | f2026eb8850367e0a993cac3e32fcae2f0afcdc0 (patch) | |
tree | 6bb1e5410fade144cb3c17efe239d51bc52a81fb | |
parent | 7fa0f51ee06e325070adf12254ec0811499e8182 (diff) | |
download | chromium_src-f2026eb8850367e0a993cac3e32fcae2f0afcdc0.zip chromium_src-f2026eb8850367e0a993cac3e32fcae2f0afcdc0.tar.gz chromium_src-f2026eb8850367e0a993cac3e32fcae2f0afcdc0.tar.bz2 |
Move the panel container above the shelf.
The callout widgets (arrows) pointing down from the panel windows need to show above the shelf and must be stacked with the panel windows in order for the shadows to be drawn correctly. A new container is created for shelf bubble windows (currently only the overflow bubble) so that it can show above the attached panel windows.
BUG=292840
TEST=Open a panel window such as hangouts and then maximize a browser window. The arrow pointing to the launcher icon from the panel window should still be visible.
Review URL: https://codereview.chromium.org/30673003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230125 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ash/root_window_controller.cc | 17 | ||||
-rw-r--r-- | ash/shelf/overflow_bubble.cc | 4 | ||||
-rw-r--r-- | ash/shell_window_ids.h | 37 |
3 files changed, 36 insertions, 22 deletions
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc index 6964f14..946e1e3 100644 --- a/ash/root_window_controller.cc +++ b/ash/root_window_controller.cc @@ -765,18 +765,25 @@ void RootWindowController::CreateContainersInRootWindow( views::corewm::SetChildWindowVisibilityChangesAnimated(docked_container); SetUsesScreenCoordinates(docked_container); + aura::Window* shelf_container = + CreateContainer(kShellWindowId_ShelfContainer, + "ShelfContainer", + non_lock_screen_containers); + SetUsesScreenCoordinates(shelf_container); + DescendantShouldStayInSameRootWindow(shelf_container); + aura::Window* panel_container = CreateContainer( kShellWindowId_PanelContainer, "PanelContainer", non_lock_screen_containers); SetUsesScreenCoordinates(panel_container); - aura::Window* shelf_container = - CreateContainer(kShellWindowId_ShelfContainer, - "ShelfContainer", + aura::Window* shelf_bubble_container = + CreateContainer(kShellWindowId_ShelfBubbleContainer, + "ShelfBubbleContainer", non_lock_screen_containers); - SetUsesScreenCoordinates(shelf_container); - DescendantShouldStayInSameRootWindow(shelf_container); + SetUsesScreenCoordinates(shelf_bubble_container); + DescendantShouldStayInSameRootWindow(shelf_bubble_container); aura::Window* app_list_container = CreateContainer(kShellWindowId_AppListContainer, diff --git a/ash/shelf/overflow_bubble.cc b/ash/shelf/overflow_bubble.cc index 554e89f5..0b62f46 100644 --- a/ash/shelf/overflow_bubble.cc +++ b/ash/shelf/overflow_bubble.cc @@ -12,6 +12,7 @@ #include "ash/shelf/shelf_view.h" #include "ash/shelf/shelf_widget.h" #include "ash/shell.h" +#include "ash/shell_window_ids.h" #include "ash/system/tray/system_tray.h" #include "ui/aura/client/screen_position_client.h" #include "ui/aura/root_window.h" @@ -120,6 +121,9 @@ void OverflowBubbleView::InitOverflowBubble(views::View* anchor, shelf_view_ = shelf_view; AddChildView(shelf_view_); + set_parent_window(Shell::GetContainer( + anchor->GetWidget()->GetNativeWindow()->GetRootWindow(), + internal::kShellWindowId_ShelfBubbleContainer)); views::BubbleDelegateView::CreateBubble(this); } diff --git a/ash/shell_window_ids.h b/ash/shell_window_ids.h index 1c1c396..ab5fd23 100644 --- a/ash/shell_window_ids.h +++ b/ash/shell_window_ids.h @@ -50,54 +50,57 @@ const int kShellWindowId_AlwaysOnTopContainer = 7; // The container for windows docked to either side of the desktop. const int kShellWindowId_DockedContainer = 8; -// The container for panel windows. -const int kShellWindowId_PanelContainer = 9; - // The container for the shelf. -const int kShellWindowId_ShelfContainer = 10; +const int kShellWindowId_ShelfContainer = 9; + +// The container for bubbles which float over the shelf. +const int kShellWindowId_ShelfBubbleContainer = 10; + +// The container for panel windows. +const int kShellWindowId_PanelContainer = 11; // The container for the app list. -const int kShellWindowId_AppListContainer = 11; +const int kShellWindowId_AppListContainer = 12; // The container for user-specific modal windows. -const int kShellWindowId_SystemModalContainer = 12; +const int kShellWindowId_SystemModalContainer = 13; // The container for input method components such like candidate windows. They // are almost panels but have no activations/focus, and they should appear over // the AppList and SystemModal dialogs. -const int kShellWindowId_InputMethodContainer = 13; +const int kShellWindowId_InputMethodContainer = 14; // The container for the lock screen background. -const int kShellWindowId_LockScreenBackgroundContainer = 14; +const int kShellWindowId_LockScreenBackgroundContainer = 15; // The container for the lock screen. -const int kShellWindowId_LockScreenContainer = 15; +const int kShellWindowId_LockScreenContainer = 16; // The container for the lock screen modal windows. -const int kShellWindowId_LockSystemModalContainer = 16; +const int kShellWindowId_LockSystemModalContainer = 17; // The container for the status area. -const int kShellWindowId_StatusContainer = 17; +const int kShellWindowId_StatusContainer = 18; // The container for menus. -const int kShellWindowId_MenuContainer = 18; +const int kShellWindowId_MenuContainer = 19; // The container for drag/drop images and tooltips. -const int kShellWindowId_DragImageAndTooltipContainer = 19; +const int kShellWindowId_DragImageAndTooltipContainer = 20; // The container for bubbles briefly overlaid onscreen to show settings changes // (volume, brightness, etc.). -const int kShellWindowId_SettingBubbleContainer = 20; +const int kShellWindowId_SettingBubbleContainer = 21; // The container for special components overlaid onscreen, such as the // region selector for partial screenshots. -const int kShellWindowId_OverlayContainer = 21; +const int kShellWindowId_OverlayContainer = 22; // ID of the window created by PhantomWindowController or DragWindowController. -const int kShellWindowId_PhantomWindow = 22; +const int kShellWindowId_PhantomWindow = 23; // The topmost container, used for power off animation. -const int kShellWindowId_PowerButtonAnimationContainer = 23; +const int kShellWindowId_PowerButtonAnimationContainer = 24; } // namespace internal |