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

Side by Side Diff: ui/base/accelerators/accelerator_manager.cc

Issue 10381145: WIP: Always update ui::AcceleratorManager Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 5 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
« no previous file with comments | « ui/base/accelerators/accelerator_manager.h ('k') | ui/views/focus/focus_manager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "ui/base/accelerators/accelerator_manager.h" 5 #include "ui/base/accelerators/accelerator_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 10
11 namespace ui { 11 namespace ui {
12 12
13 AcceleratorManager::AcceleratorManager() : last_event_type_(ET_KEY_PRESSED) { 13 AcceleratorManager::AcceleratorManager() {
14 } 14 }
15 15
16 AcceleratorManager::~AcceleratorManager() { 16 AcceleratorManager::~AcceleratorManager() {
17 } 17 }
18 18
19 void AcceleratorManager::Register(const Accelerator& accelerator, 19 void AcceleratorManager::Register(const Accelerator& accelerator,
20 HandlerPriority priority, 20 HandlerPriority priority,
21 AcceleratorTarget* target) { 21 AcceleratorTarget* target) {
22 AcceleratorTargetList& targets = accelerators_[accelerator].second; 22 AcceleratorTargetList& targets = accelerators_[accelerator].second;
23 DCHECK(std::find(targets.begin(), targets.end(), target) == targets.end()) 23 DCHECK(std::find(targets.begin(), targets.end(), target) == targets.end())
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 AcceleratorTargetList targets(map_iter->second.second); 84 AcceleratorTargetList targets(map_iter->second.second);
85 for (AcceleratorTargetList::iterator iter = targets.begin(); 85 for (AcceleratorTargetList::iterator iter = targets.begin();
86 iter != targets.end(); ++iter) { 86 iter != targets.end(); ++iter) {
87 if ((*iter)->CanHandleAccelerators() && 87 if ((*iter)->CanHandleAccelerators() &&
88 (*iter)->AcceleratorPressed(accelerator)) { 88 (*iter)->AcceleratorPressed(accelerator)) {
89 result = true; 89 result = true;
90 break; 90 break;
91 } 91 }
92 } 92 }
93 } 93 }
94 last_event_type_ = accelerator.type(); 94 set_last_event(accelerator);
95 return result; 95 return result;
96 } 96 }
97 97
98 AcceleratorTarget* AcceleratorManager::GetCurrentTarget( 98 AcceleratorTarget* AcceleratorManager::GetCurrentTarget(
99 const Accelerator& accelerator) const { 99 const Accelerator& accelerator) const {
100 AcceleratorMap::const_iterator map_iter = accelerators_.find(accelerator); 100 AcceleratorMap::const_iterator map_iter = accelerators_.find(accelerator);
101 if (map_iter == accelerators_.end() || map_iter->second.second.empty()) 101 if (map_iter == accelerators_.end() || map_iter->second.second.empty())
102 return NULL; 102 return NULL;
103 return map_iter->second.second.front(); 103 return map_iter->second.second.front();
104 } 104 }
(...skipping 13 matching lines...) Expand all
118 return map_iter->second.second.front()->CanHandleAccelerators(); 118 return map_iter->second.second.front()->CanHandleAccelerators();
119 } 119 }
120 120
121 bool AcceleratorManager::ShouldHandle(const Accelerator& accelerator) const { 121 bool AcceleratorManager::ShouldHandle(const Accelerator& accelerator) const {
122 if (accelerator.type() != ET_KEY_RELEASED) 122 if (accelerator.type() != ET_KEY_RELEASED)
123 return true; 123 return true;
124 124
125 // This check is necessary e.g. not to process the Shift+Alt+ET_KEY_RELEASED 125 // This check is necessary e.g. not to process the Shift+Alt+ET_KEY_RELEASED
126 // Accelerator for Chrome OS (see ash/accelerators/accelerator_controller.cc) 126 // Accelerator for Chrome OS (see ash/accelerators/accelerator_controller.cc)
127 // when Shift+Alt+Tab is pressed and then Tab is released. 127 // when Shift+Alt+Tab is pressed and then Tab is released.
128 return last_event_type_ == ET_KEY_PRESSED; 128 return last_event_.type() == ET_KEY_PRESSED;
129 } 129 }
130 130
131 } // namespace ui 131 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/accelerators/accelerator_manager.h ('k') | ui/views/focus/focus_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698