| 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/root_window_controller.h" | 5 #include "ash/root_window_controller.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "ash/ash_constants.h" | 9 #include "ash/ash_constants.h" |
| 10 #include "ash/ash_switches.h" | 10 #include "ash/ash_switches.h" |
| (...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 void RootWindowController::ShowContextMenu( | 457 void RootWindowController::ShowContextMenu( |
| 458 const gfx::Point& location_in_screen) { | 458 const gfx::Point& location_in_screen) { |
| 459 aura::RootWindow* target = Shell::IsLauncherPerDisplayEnabled() ? | 459 aura::RootWindow* target = Shell::IsLauncherPerDisplayEnabled() ? |
| 460 root_window() : Shell::GetPrimaryRootWindow(); | 460 root_window() : Shell::GetPrimaryRootWindow(); |
| 461 DCHECK(Shell::GetInstance()->delegate()); | 461 DCHECK(Shell::GetInstance()->delegate()); |
| 462 scoped_ptr<ui::MenuModel> menu_model( | 462 scoped_ptr<ui::MenuModel> menu_model( |
| 463 Shell::GetInstance()->delegate()->CreateContextMenu(target)); | 463 Shell::GetInstance()->delegate()->CreateContextMenu(target)); |
| 464 if (!menu_model.get()) | 464 if (!menu_model.get()) |
| 465 return; | 465 return; |
| 466 | 466 |
| 467 internal::DesktopBackgroundWidgetController* background = |
| 468 root_window_->GetProperty(kDesktopController); |
| 469 // Background controller may not be set yet if user clicked on status are |
| 470 // before initial animation completion. See crbug.com/222218 |
| 471 if (!background) |
| 472 return; |
| 473 |
| 467 views::MenuRunner menu_runner(menu_model.get()); | 474 views::MenuRunner menu_runner(menu_model.get()); |
| 468 views::Widget* widget = | 475 if (menu_runner.RunMenuAt(background->widget(), |
| 469 root_window_->GetProperty(kDesktopController)->widget(); | 476 NULL, gfx::Rect(location_in_screen, gfx::Size()), |
| 470 | |
| 471 if (menu_runner.RunMenuAt( | |
| 472 widget, NULL, gfx::Rect(location_in_screen, gfx::Size()), | |
| 473 views::MenuItemView::TOPLEFT, views::MenuRunner::CONTEXT_MENU) == | 477 views::MenuItemView::TOPLEFT, views::MenuRunner::CONTEXT_MENU) == |
| 474 views::MenuRunner::MENU_DELETED) | 478 views::MenuRunner::MENU_DELETED) { |
| 475 return; | 479 return; |
| 480 } |
| 476 | 481 |
| 477 Shell::GetInstance()->UpdateShelfVisibility(); | 482 Shell::GetInstance()->UpdateShelfVisibility(); |
| 478 } | 483 } |
| 479 | 484 |
| 480 void RootWindowController::UpdateShelfVisibility() { | 485 void RootWindowController::UpdateShelfVisibility() { |
| 481 shelf_->shelf_layout_manager()->UpdateVisibilityState(); | 486 shelf_->shelf_layout_manager()->UpdateVisibilityState(); |
| 482 } | 487 } |
| 483 | 488 |
| 484 bool RootWindowController::IsImmersiveMode() const { | 489 bool RootWindowController::IsImmersiveMode() const { |
| 485 aura::Window* container = workspace_controller_->GetActiveWorkspaceWindow(); | 490 aura::Window* container = workspace_controller_->GetActiveWorkspaceWindow(); |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 645 "OverlayContainer", | 650 "OverlayContainer", |
| 646 lock_screen_related_containers); | 651 lock_screen_related_containers); |
| 647 SetUsesScreenCoordinates(overlay_container); | 652 SetUsesScreenCoordinates(overlay_container); |
| 648 | 653 |
| 649 CreateContainer(kShellWindowId_PowerButtonAnimationContainer, | 654 CreateContainer(kShellWindowId_PowerButtonAnimationContainer, |
| 650 "PowerButtonAnimationContainer", root_window) ; | 655 "PowerButtonAnimationContainer", root_window) ; |
| 651 } | 656 } |
| 652 | 657 |
| 653 } // namespace internal | 658 } // namespace internal |
| 654 } // namespace ash | 659 } // namespace ash |
| OLD | NEW |