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

Side by Side Diff: ash/accelerators/accelerator_controller.cc

Issue 1138523006: Enable keyboard accelerators while a menu is open (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rename the enum values Created 5 years, 3 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
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/accelerators/accelerator_controller.h" 5 #include "ash/accelerators/accelerator_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <string> 9 #include <string>
10 10
(...skipping 769 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 void AcceleratorController::SetImeControlDelegate( 780 void AcceleratorController::SetImeControlDelegate(
781 scoped_ptr<ImeControlDelegate> ime_control_delegate) { 781 scoped_ptr<ImeControlDelegate> ime_control_delegate) {
782 ime_control_delegate_ = ime_control_delegate.Pass(); 782 ime_control_delegate_ = ime_control_delegate.Pass();
783 } 783 }
784 784
785 void AcceleratorController::SetScreenshotDelegate( 785 void AcceleratorController::SetScreenshotDelegate(
786 scoped_ptr<ScreenshotDelegate> screenshot_delegate) { 786 scoped_ptr<ScreenshotDelegate> screenshot_delegate) {
787 screenshot_delegate_ = screenshot_delegate.Pass(); 787 screenshot_delegate_ = screenshot_delegate.Pass();
788 } 788 }
789 789
790 bool AcceleratorController::ShouldCloseMenuAndRepostAccelerator(
791 const ui::Accelerator& accelerator) const {
792 auto itr = accelerators_.find(accelerator);
793 if (itr == accelerators_.end())
794 return false; // Menu shouldn't be closed for an invalid accelerator.
795
796 AcceleratorAction action = itr->second;
797 return actions_keeping_menu_open_.count(action) == 0;
798 }
799
790 //////////////////////////////////////////////////////////////////////////////// 800 ////////////////////////////////////////////////////////////////////////////////
791 // AcceleratorController, ui::AcceleratorTarget implementation: 801 // AcceleratorController, ui::AcceleratorTarget implementation:
792 802
793 bool AcceleratorController::AcceleratorPressed( 803 bool AcceleratorController::AcceleratorPressed(
794 const ui::Accelerator& accelerator) { 804 const ui::Accelerator& accelerator) {
795 std::map<ui::Accelerator, AcceleratorAction>::const_iterator it = 805 std::map<ui::Accelerator, AcceleratorAction>::const_iterator it =
796 accelerators_.find(accelerator); 806 accelerators_.find(accelerator);
797 DCHECK(it != accelerators_.end()); 807 DCHECK(it != accelerators_.end());
798 AcceleratorAction action = it->second; 808 AcceleratorAction action = it->second;
799 if (CanPerformAction(action, accelerator)) { 809 if (CanPerformAction(action, accelerator)) {
(...skipping 24 matching lines...) Expand all
824 for (size_t i = 0; i < kPreferredActionsLength; ++i) 834 for (size_t i = 0; i < kPreferredActionsLength; ++i)
825 preferred_actions_.insert(kPreferredActions[i]); 835 preferred_actions_.insert(kPreferredActions[i]);
826 for (size_t i = 0; i < kReservedActionsLength; ++i) 836 for (size_t i = 0; i < kReservedActionsLength; ++i)
827 reserved_actions_.insert(kReservedActions[i]); 837 reserved_actions_.insert(kReservedActions[i]);
828 for (size_t i = 0; i < kNonrepeatableActionsLength; ++i) 838 for (size_t i = 0; i < kNonrepeatableActionsLength; ++i)
829 nonrepeatable_actions_.insert(kNonrepeatableActions[i]); 839 nonrepeatable_actions_.insert(kNonrepeatableActions[i]);
830 for (size_t i = 0; i < kActionsAllowedInAppModeLength; ++i) 840 for (size_t i = 0; i < kActionsAllowedInAppModeLength; ++i)
831 actions_allowed_in_app_mode_.insert(kActionsAllowedInAppMode[i]); 841 actions_allowed_in_app_mode_.insert(kActionsAllowedInAppMode[i]);
832 for (size_t i = 0; i < kActionsNeedingWindowLength; ++i) 842 for (size_t i = 0; i < kActionsNeedingWindowLength; ++i)
833 actions_needing_window_.insert(kActionsNeedingWindow[i]); 843 actions_needing_window_.insert(kActionsNeedingWindow[i]);
844 for (size_t i = 0; i < kActionsKeepingMenuOpenLength; ++i)
845 actions_keeping_menu_open_.insert(kActionsKeepingMenuOpen[i]);
834 846
835 RegisterAccelerators(kAcceleratorData, kAcceleratorDataLength); 847 RegisterAccelerators(kAcceleratorData, kAcceleratorDataLength);
836 848
837 RegisterDeprecatedAccelerators(); 849 RegisterDeprecatedAccelerators();
838 850
839 if (debug::DebugAcceleratorsEnabled()) { 851 if (debug::DebugAcceleratorsEnabled()) {
840 RegisterAccelerators(kDebugAcceleratorData, kDebugAcceleratorDataLength); 852 RegisterAccelerators(kDebugAcceleratorData, kDebugAcceleratorDataLength);
841 // All debug accelerators are reserved. 853 // All debug accelerators are reserved.
842 for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i) 854 for (size_t i = 0; i < kDebugAcceleratorDataLength; ++i)
843 reserved_actions_.insert(kDebugAcceleratorData[i].action); 855 reserved_actions_.insert(kDebugAcceleratorData[i].action);
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
1366 } 1378 }
1367 1379
1368 void AcceleratorController::SetKeyboardBrightnessControlDelegate( 1380 void AcceleratorController::SetKeyboardBrightnessControlDelegate(
1369 scoped_ptr<KeyboardBrightnessControlDelegate> 1381 scoped_ptr<KeyboardBrightnessControlDelegate>
1370 keyboard_brightness_control_delegate) { 1382 keyboard_brightness_control_delegate) {
1371 keyboard_brightness_control_delegate_ = 1383 keyboard_brightness_control_delegate_ =
1372 keyboard_brightness_control_delegate.Pass(); 1384 keyboard_brightness_control_delegate.Pass();
1373 } 1385 }
1374 1386
1375 } // namespace ash 1387 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698