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

Side by Side Diff: ash/shell.cc

Issue 16979002: Add ContextMenuSourceType to views::ContextMenuController::ShowContextMenuForView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix win build 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/shell.h" 5 #include "ash/shell.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "ash/accelerators/focus_manager_factory.h" 10 #include "ash/accelerators/focus_manager_factory.h"
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 cursor_manager_.HideCursor(); 614 cursor_manager_.HideCursor();
615 cursor_manager_.SetCursor(ui::kCursorPointer); 615 cursor_manager_.SetCursor(ui::kCursorPointer);
616 616
617 if (!cursor_manager_.IsCursorVisible()) { 617 if (!cursor_manager_.IsCursorVisible()) {
618 // Cursor might have been hidden by something other than chrome. 618 // Cursor might have been hidden by something other than chrome.
619 // Let the first mouse event show the cursor. 619 // Let the first mouse event show the cursor.
620 env_filter_->set_cursor_hidden_by_filter(true); 620 env_filter_->set_cursor_hidden_by_filter(true);
621 } 621 }
622 } 622 }
623 623
624 void Shell::ShowContextMenu(const gfx::Point& location_in_screen) { 624 void Shell::ShowContextMenu(const gfx::Point& location_in_screen,
625 ui::MenuSourceType source_type) {
625 // No context menus if there is no session with an active user. 626 // No context menus if there is no session with an active user.
626 if (!session_state_delegate_->NumberOfLoggedInUsers()) 627 if (!session_state_delegate_->NumberOfLoggedInUsers())
627 return; 628 return;
628 // No context menus when screen is locked. 629 // No context menus when screen is locked.
629 if (session_state_delegate_->IsScreenLocked()) 630 if (session_state_delegate_->IsScreenLocked())
630 return; 631 return;
631 632
632 aura::RootWindow* root = 633 aura::RootWindow* root =
633 wm::GetRootWindowMatching(gfx::Rect(location_in_screen, gfx::Size())); 634 wm::GetRootWindowMatching(gfx::Rect(location_in_screen, gfx::Size()));
634 // TODO(oshima): The root and root window controller shouldn't be 635 // TODO(oshima): The root and root window controller shouldn't be
635 // NULL even for the out-of-bounds |location_in_screen| (It should 636 // NULL even for the out-of-bounds |location_in_screen| (It should
636 // return the primary root). Investigate why/how this is 637 // return the primary root). Investigate why/how this is
637 // happening. crbug.com/165214. 638 // happening. crbug.com/165214.
638 internal::RootWindowController* rwc = GetRootWindowController(root); 639 internal::RootWindowController* rwc = GetRootWindowController(root);
639 CHECK(rwc) << "root=" << root 640 CHECK(rwc) << "root=" << root
640 << ", location:" << location_in_screen.ToString(); 641 << ", location:" << location_in_screen.ToString();
641 if (rwc) 642 if (rwc)
642 rwc->ShowContextMenu(location_in_screen); 643 rwc->ShowContextMenu(location_in_screen, source_type);
643 } 644 }
644 645
645 void Shell::ToggleAppList(aura::Window* window) { 646 void Shell::ToggleAppList(aura::Window* window) {
646 // If the context window is not given, show it on the active root window. 647 // If the context window is not given, show it on the active root window.
647 if (!window) 648 if (!window)
648 window = GetActiveRootWindow(); 649 window = GetActiveRootWindow();
649 if (!app_list_controller_) 650 if (!app_list_controller_)
650 app_list_controller_.reset(new internal::AppListController); 651 app_list_controller_.reset(new internal::AppListController);
651 app_list_controller_->SetVisible(!app_list_controller_->IsVisible(), window); 652 app_list_controller_->SetVisible(!app_list_controller_->IsVisible(), window);
652 } 653 }
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
956 //////////////////////////////////////////////////////////////////////////////// 957 ////////////////////////////////////////////////////////////////////////////////
957 // Shell, aura::client::ActivationChangeObserver implementation: 958 // Shell, aura::client::ActivationChangeObserver implementation:
958 959
959 void Shell::OnWindowActivated(aura::Window* gained_active, 960 void Shell::OnWindowActivated(aura::Window* gained_active,
960 aura::Window* lost_active) { 961 aura::Window* lost_active) {
961 if (gained_active) 962 if (gained_active)
962 active_root_window_ = gained_active->GetRootWindow(); 963 active_root_window_ = gained_active->GetRootWindow();
963 } 964 }
964 965
965 } // namespace ash 966 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698