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

Side by Side Diff: ash/sticky_keys/sticky_keys_controller.cc

Issue 598733002: Support search as a sticky key. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkcr
Patch Set: Add Search+Left test. Created 6 years, 2 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/sticky_keys/sticky_keys_controller.h" 5 #include "ash/sticky_keys/sticky_keys_controller.h"
6 6
7 #include "ash/sticky_keys/sticky_keys_overlay.h" 7 #include "ash/sticky_keys/sticky_keys_overlay.h"
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/debug/stack_trace.h" 9 #include "base/debug/stack_trace.h"
10 #include "ui/aura/window.h" 10 #include "ui/aura/window.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 enabled_ = enabled; 59 enabled_ = enabled;
60 60
61 // Reset key handlers when activating sticky keys to ensure all 61 // Reset key handlers when activating sticky keys to ensure all
62 // the handlers' states are reset. 62 // the handlers' states are reset.
63 if (enabled_) { 63 if (enabled_) {
64 shift_sticky_key_.reset(new StickyKeysHandler(ui::EF_SHIFT_DOWN)); 64 shift_sticky_key_.reset(new StickyKeysHandler(ui::EF_SHIFT_DOWN));
65 alt_sticky_key_.reset(new StickyKeysHandler(ui::EF_ALT_DOWN)); 65 alt_sticky_key_.reset(new StickyKeysHandler(ui::EF_ALT_DOWN));
66 altgr_sticky_key_.reset(new StickyKeysHandler(ui::EF_ALTGR_DOWN)); 66 altgr_sticky_key_.reset(new StickyKeysHandler(ui::EF_ALTGR_DOWN));
67 ctrl_sticky_key_.reset(new StickyKeysHandler(ui::EF_CONTROL_DOWN)); 67 ctrl_sticky_key_.reset(new StickyKeysHandler(ui::EF_CONTROL_DOWN));
68 mod3_sticky_key_.reset(new StickyKeysHandler(ui::EF_MOD3_DOWN)); 68 mod3_sticky_key_.reset(new StickyKeysHandler(ui::EF_MOD3_DOWN));
69 search_sticky_key_.reset(new StickyKeysHandler(ui::EF_COMMAND_DOWN));
69 70
70 overlay_.reset(new StickyKeysOverlay()); 71 overlay_.reset(new StickyKeysOverlay());
71 overlay_->SetModifierVisible(ui::EF_ALTGR_DOWN, altgr_enabled_); 72 overlay_->SetModifierVisible(ui::EF_ALTGR_DOWN, altgr_enabled_);
72 overlay_->SetModifierVisible(ui::EF_MOD3_DOWN, mod3_enabled_); 73 overlay_->SetModifierVisible(ui::EF_MOD3_DOWN, mod3_enabled_);
73 } else if (overlay_) { 74 } else if (overlay_) {
74 overlay_->Show(false); 75 overlay_->Show(false);
75 } 76 }
76 } 77 }
77 } 78 }
78 79
(...skipping 13 matching lines...) Expand all
92 bool* released) { 93 bool* released) {
93 return shift_sticky_key_->HandleKeyEvent( 94 return shift_sticky_key_->HandleKeyEvent(
94 event, key_code, mod_down_flags, released) || 95 event, key_code, mod_down_flags, released) ||
95 alt_sticky_key_->HandleKeyEvent( 96 alt_sticky_key_->HandleKeyEvent(
96 event, key_code, mod_down_flags, released) || 97 event, key_code, mod_down_flags, released) ||
97 altgr_sticky_key_->HandleKeyEvent( 98 altgr_sticky_key_->HandleKeyEvent(
98 event, key_code, mod_down_flags, released) || 99 event, key_code, mod_down_flags, released) ||
99 ctrl_sticky_key_->HandleKeyEvent( 100 ctrl_sticky_key_->HandleKeyEvent(
100 event, key_code, mod_down_flags, released) || 101 event, key_code, mod_down_flags, released) ||
101 mod3_sticky_key_->HandleKeyEvent( 102 mod3_sticky_key_->HandleKeyEvent(
103 event, key_code, mod_down_flags, released) ||
104 search_sticky_key_->HandleKeyEvent(
102 event, key_code, mod_down_flags, released); 105 event, key_code, mod_down_flags, released);
103 } 106 }
104 107
105 bool StickyKeysController::HandleMouseEvent(const ui::MouseEvent& event, 108 bool StickyKeysController::HandleMouseEvent(const ui::MouseEvent& event,
106 int* mod_down_flags, 109 int* mod_down_flags,
107 bool* released) { 110 bool* released) {
108 return shift_sticky_key_->HandleMouseEvent( 111 return shift_sticky_key_->HandleMouseEvent(
109 event, mod_down_flags, released) || 112 event, mod_down_flags, released) ||
110 alt_sticky_key_->HandleMouseEvent( 113 alt_sticky_key_->HandleMouseEvent(
111 event, mod_down_flags, released) || 114 event, mod_down_flags, released) ||
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 } 173 }
171 174
172 ui::EventRewriteStatus StickyKeysController::NextDispatchEvent( 175 ui::EventRewriteStatus StickyKeysController::NextDispatchEvent(
173 scoped_ptr<ui::Event>* new_event) { 176 scoped_ptr<ui::Event>* new_event) {
174 DCHECK(new_event); 177 DCHECK(new_event);
175 new_event->reset(); 178 new_event->reset();
176 int remaining = shift_sticky_key_->GetModifierUpEvent(new_event) + 179 int remaining = shift_sticky_key_->GetModifierUpEvent(new_event) +
177 alt_sticky_key_->GetModifierUpEvent(new_event) + 180 alt_sticky_key_->GetModifierUpEvent(new_event) +
178 altgr_sticky_key_->GetModifierUpEvent(new_event) + 181 altgr_sticky_key_->GetModifierUpEvent(new_event) +
179 ctrl_sticky_key_->GetModifierUpEvent(new_event) + 182 ctrl_sticky_key_->GetModifierUpEvent(new_event) +
180 mod3_sticky_key_->GetModifierUpEvent(new_event); 183 mod3_sticky_key_->GetModifierUpEvent(new_event) +
184 search_sticky_key_->GetModifierUpEvent(new_event);
181 if (!new_event) 185 if (!new_event)
182 return ui::EVENT_REWRITE_CONTINUE; 186 return ui::EVENT_REWRITE_CONTINUE;
183 if (remaining) 187 if (remaining)
184 return ui::EVENT_REWRITE_DISPATCH_ANOTHER; 188 return ui::EVENT_REWRITE_DISPATCH_ANOTHER;
185 return ui::EVENT_REWRITE_REWRITTEN; 189 return ui::EVENT_REWRITE_REWRITTEN;
186 } 190 }
187 191
188 void StickyKeysController::UpdateOverlay() { 192 void StickyKeysController::UpdateOverlay() {
189 overlay_->SetModifierKeyState( 193 overlay_->SetModifierKeyState(
190 ui::EF_SHIFT_DOWN, shift_sticky_key_->current_state()); 194 ui::EF_SHIFT_DOWN, shift_sticky_key_->current_state());
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 key_code == ui::VKEY_RCONTROL) { 330 key_code == ui::VKEY_RCONTROL) {
327 is_target_key = (modifier_flag_ == ui::EF_CONTROL_DOWN); 331 is_target_key = (modifier_flag_ == ui::EF_CONTROL_DOWN);
328 } else if (key_code == ui::VKEY_MENU || 332 } else if (key_code == ui::VKEY_MENU ||
329 key_code == ui::VKEY_LMENU || 333 key_code == ui::VKEY_LMENU ||
330 key_code == ui::VKEY_RMENU) { 334 key_code == ui::VKEY_RMENU) {
331 is_target_key = (modifier_flag_ == ui::EF_ALT_DOWN); 335 is_target_key = (modifier_flag_ == ui::EF_ALT_DOWN);
332 } else if (key_code == ui::VKEY_ALTGR) { 336 } else if (key_code == ui::VKEY_ALTGR) {
333 is_target_key = (modifier_flag_ == ui::EF_ALTGR_DOWN); 337 is_target_key = (modifier_flag_ == ui::EF_ALTGR_DOWN);
334 } else if (key_code == ui::VKEY_OEM_8) { 338 } else if (key_code == ui::VKEY_OEM_8) {
335 is_target_key = (modifier_flag_ == ui::EF_MOD3_DOWN); 339 is_target_key = (modifier_flag_ == ui::EF_MOD3_DOWN);
340 } else if (key_code == ui::VKEY_LWIN) {
341 is_target_key = (modifier_flag_ == ui::EF_COMMAND_DOWN);
336 } else { 342 } else {
337 return type == ui::ET_KEY_PRESSED ? 343 return type == ui::ET_KEY_PRESSED ?
338 NORMAL_KEY_DOWN : NORMAL_KEY_UP; 344 NORMAL_KEY_DOWN : NORMAL_KEY_UP;
339 } 345 }
340 346
341 if (is_target_key) { 347 if (is_target_key) {
342 return type == ui::ET_KEY_PRESSED ? 348 return type == ui::ET_KEY_PRESSED ?
343 TARGET_MODIFIER_DOWN : TARGET_MODIFIER_UP; 349 TARGET_MODIFIER_DOWN : TARGET_MODIFIER_UP;
344 } 350 }
345 return type == ui::ET_KEY_PRESSED ? 351 return type == ui::ET_KEY_PRESSED ?
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 return false; 421 return false;
416 case OTHER_MODIFIER_DOWN: 422 case OTHER_MODIFIER_DOWN:
417 case OTHER_MODIFIER_UP: 423 case OTHER_MODIFIER_UP:
418 return false; 424 return false;
419 } 425 }
420 NOTREACHED(); 426 NOTREACHED();
421 return false; 427 return false;
422 } 428 }
423 429
424 } // namespace ash 430 } // namespace ash
OLDNEW
« no previous file with comments | « ash/sticky_keys/sticky_keys_controller.h ('k') | chrome/browser/chromeos/accessibility/sticky_keys_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698