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

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

Issue 2586333003: Make mash register initial batch of accelerators in single shot. (Closed)
Patch Set: Change comment/ Modify log sections/ Refactor code. Created 3 years, 11 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/common/accelerators/accelerator_controller.h" 5 #include "ash/common/accelerators/accelerator_controller.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "ash/common/accelerators/accelerator_commands.h" 9 #include "ash/common/accelerators/accelerator_commands.h"
10 #include "ash/common/accelerators/accelerator_controller_delegate.h" 10 #include "ash/common/accelerators/accelerator_controller_delegate.h"
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 AcceleratorControllerDelegate* delegate, 546 AcceleratorControllerDelegate* delegate,
547 ui::AcceleratorManagerDelegate* manager_delegate) 547 ui::AcceleratorManagerDelegate* manager_delegate)
548 : delegate_(delegate), 548 : delegate_(delegate),
549 accelerator_manager_(new ui::AcceleratorManager(manager_delegate)), 549 accelerator_manager_(new ui::AcceleratorManager(manager_delegate)),
550 accelerator_history_(new ui::AcceleratorHistory) { 550 accelerator_history_(new ui::AcceleratorHistory) {
551 Init(); 551 Init();
552 } 552 }
553 553
554 AcceleratorController::~AcceleratorController() {} 554 AcceleratorController::~AcceleratorController() {}
555 555
556 void AcceleratorController::Register(const ui::Accelerator& accelerator, 556 void AcceleratorController::Register(
557 ui::AcceleratorTarget* target) { 557 const std::vector<ui::Accelerator>& accelerators,
558 ui::AcceleratorTarget* target) {
558 accelerator_manager_->Register( 559 accelerator_manager_->Register(
559 accelerator, ui::AcceleratorManager::kNormalPriority, target); 560 accelerators, ui::AcceleratorManager::kNormalPriority, target);
560 } 561 }
561 562
562 void AcceleratorController::Unregister(const ui::Accelerator& accelerator, 563 void AcceleratorController::Unregister(const ui::Accelerator& accelerator,
563 ui::AcceleratorTarget* target) { 564 ui::AcceleratorTarget* target) {
564 accelerator_manager_->Unregister(accelerator, target); 565 accelerator_manager_->Unregister(accelerator, target);
565 } 566 }
566 567
567 void AcceleratorController::UnregisterAll(ui::AcceleratorTarget* target) { 568 void AcceleratorController::UnregisterAll(ui::AcceleratorTarget* target) {
568 accelerator_manager_->UnregisterAll(target); 569 accelerator_manager_->UnregisterAll(target);
569 } 570 }
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 kDeveloperAcceleratorDataLength); 744 kDeveloperAcceleratorDataLength);
744 // Developer accelerators are also reserved. 745 // Developer accelerators are also reserved.
745 for (size_t i = 0; i < kDeveloperAcceleratorDataLength; ++i) 746 for (size_t i = 0; i < kDeveloperAcceleratorDataLength; ++i)
746 reserved_actions_.insert(kDeveloperAcceleratorData[i].action); 747 reserved_actions_.insert(kDeveloperAcceleratorData[i].action);
747 } 748 }
748 } 749 }
749 750
750 void AcceleratorController::RegisterAccelerators( 751 void AcceleratorController::RegisterAccelerators(
751 const AcceleratorData accelerators[], 752 const AcceleratorData accelerators[],
752 size_t accelerators_length) { 753 size_t accelerators_length) {
754 std::vector<ui::Accelerator> ui_accelerators;
753 for (size_t i = 0; i < accelerators_length; ++i) { 755 for (size_t i = 0; i < accelerators_length; ++i) {
754 ui::Accelerator accelerator = 756 ui::Accelerator accelerator =
755 CreateAccelerator(accelerators[i].keycode, accelerators[i].modifiers, 757 CreateAccelerator(accelerators[i].keycode, accelerators[i].modifiers,
756 accelerators[i].trigger_on_press); 758 accelerators[i].trigger_on_press);
757 Register(accelerator, this); 759 ui_accelerators.push_back(accelerator);
758 accelerators_.insert(std::make_pair(accelerator, accelerators[i].action)); 760 accelerators_.insert(std::make_pair(accelerator, accelerators[i].action));
759 } 761 }
762 Register(ui_accelerators, this);
760 } 763 }
761 764
762 void AcceleratorController::RegisterDeprecatedAccelerators() { 765 void AcceleratorController::RegisterDeprecatedAccelerators() {
763 #if defined(OS_CHROMEOS) 766 #if defined(OS_CHROMEOS)
764 for (size_t i = 0; i < kDeprecatedAcceleratorsDataLength; ++i) { 767 for (size_t i = 0; i < kDeprecatedAcceleratorsDataLength; ++i) {
765 const DeprecatedAcceleratorData* data = &kDeprecatedAcceleratorsData[i]; 768 const DeprecatedAcceleratorData* data = &kDeprecatedAcceleratorsData[i];
766 actions_with_deprecations_[data->action] = data; 769 actions_with_deprecations_[data->action] = data;
767 } 770 }
768 771
772 std::vector<ui::Accelerator> ui_accelerators;
769 for (size_t i = 0; i < kDeprecatedAcceleratorsLength; ++i) { 773 for (size_t i = 0; i < kDeprecatedAcceleratorsLength; ++i) {
770 const AcceleratorData& accelerator_data = kDeprecatedAccelerators[i]; 774 const AcceleratorData& accelerator_data = kDeprecatedAccelerators[i];
771 const ui::Accelerator deprecated_accelerator = 775 const ui::Accelerator deprecated_accelerator =
772 CreateAccelerator(accelerator_data.keycode, accelerator_data.modifiers, 776 CreateAccelerator(accelerator_data.keycode, accelerator_data.modifiers,
773 accelerator_data.trigger_on_press); 777 accelerator_data.trigger_on_press);
774 778
775 Register(deprecated_accelerator, this); 779 ui_accelerators.push_back(deprecated_accelerator);
776 accelerators_[deprecated_accelerator] = accelerator_data.action; 780 accelerators_[deprecated_accelerator] = accelerator_data.action;
777 deprecated_accelerators_.insert(deprecated_accelerator); 781 deprecated_accelerators_.insert(deprecated_accelerator);
778 } 782 }
783 Register(ui_accelerators, this);
779 #endif // defined(OS_CHROMEOS) 784 #endif // defined(OS_CHROMEOS)
780 } 785 }
781 786
782 bool AcceleratorController::CanPerformAction( 787 bool AcceleratorController::CanPerformAction(
783 AcceleratorAction action, 788 AcceleratorAction action,
784 const ui::Accelerator& accelerator) { 789 const ui::Accelerator& accelerator) {
785 if (accelerator.IsRepeat() && !repeatable_actions_.count(action)) 790 if (accelerator.IsRepeat() && !repeatable_actions_.count(action))
786 return false; 791 return false;
787 792
788 AcceleratorProcessingRestriction restriction = 793 AcceleratorProcessingRestriction restriction =
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
1168 if (wm_shell->mru_window_tracker()->BuildMruWindowList().empty() && 1173 if (wm_shell->mru_window_tracker()->BuildMruWindowList().empty() &&
1169 actions_needing_window_.find(action) != actions_needing_window_.end()) { 1174 actions_needing_window_.find(action) != actions_needing_window_.end()) {
1170 wm_shell->accessibility_delegate()->TriggerAccessibilityAlert( 1175 wm_shell->accessibility_delegate()->TriggerAccessibilityAlert(
1171 A11Y_ALERT_WINDOW_NEEDED); 1176 A11Y_ALERT_WINDOW_NEEDED);
1172 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION; 1177 return RESTRICTION_PREVENT_PROCESSING_AND_PROPAGATION;
1173 } 1178 }
1174 return RESTRICTION_NONE; 1179 return RESTRICTION_NONE;
1175 } 1180 }
1176 1181
1177 } // namespace ash 1182 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698