| OLD | NEW |
| 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/debug/stack_trace.h" | 8 #include "base/debug/stack_trace.h" |
| 9 #include "ui/aura/window.h" | 9 #include "ui/aura/window.h" |
| 10 #include "ui/aura/window_tracker.h" | 10 #include "ui/aura/window_tracker.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 if (changed_down_flags) | 38 if (changed_down_flags) |
| 39 return ui::EVENT_REWRITE_REWRITTEN; | 39 return ui::EVENT_REWRITE_REWRITTEN; |
| 40 return ui::EVENT_REWRITE_CONTINUE; | 40 return ui::EVENT_REWRITE_CONTINUE; |
| 41 } | 41 } |
| 42 | 42 |
| 43 } // namespace | 43 } // namespace |
| 44 | 44 |
| 45 /////////////////////////////////////////////////////////////////////////////// | 45 /////////////////////////////////////////////////////////////////////////////// |
| 46 // StickyKeys | 46 // StickyKeys |
| 47 StickyKeysController::StickyKeysController() | 47 StickyKeysController::StickyKeysController() |
| 48 : enabled_(false), | 48 : enabled_(false), mod3_enabled_(false), altgr_enabled_(false) {} |
| 49 mod3_enabled_(false), | |
| 50 altgr_enabled_(false) { | |
| 51 } | |
| 52 | 49 |
| 53 StickyKeysController::~StickyKeysController() { | 50 StickyKeysController::~StickyKeysController() {} |
| 54 } | |
| 55 | 51 |
| 56 void StickyKeysController::Enable(bool enabled) { | 52 void StickyKeysController::Enable(bool enabled) { |
| 57 if (enabled_ != enabled) { | 53 if (enabled_ != enabled) { |
| 58 enabled_ = enabled; | 54 enabled_ = enabled; |
| 59 | 55 |
| 60 // Reset key handlers when activating sticky keys to ensure all | 56 // Reset key handlers when activating sticky keys to ensure all |
| 61 // the handlers' states are reset. | 57 // the handlers' states are reset. |
| 62 if (enabled_) { | 58 if (enabled_) { |
| 63 shift_sticky_key_.reset(new StickyKeysHandler(ui::EF_SHIFT_DOWN)); | 59 shift_sticky_key_.reset(new StickyKeysHandler(ui::EF_SHIFT_DOWN)); |
| 64 alt_sticky_key_.reset(new StickyKeysHandler(ui::EF_ALT_DOWN)); | 60 alt_sticky_key_.reset(new StickyKeysHandler(ui::EF_ALT_DOWN)); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 83 if (overlay_) { | 79 if (overlay_) { |
| 84 overlay_->SetModifierVisible(ui::EF_ALTGR_DOWN, altgr_enabled_); | 80 overlay_->SetModifierVisible(ui::EF_ALTGR_DOWN, altgr_enabled_); |
| 85 overlay_->SetModifierVisible(ui::EF_MOD3_DOWN, mod3_enabled_); | 81 overlay_->SetModifierVisible(ui::EF_MOD3_DOWN, mod3_enabled_); |
| 86 } | 82 } |
| 87 } | 83 } |
| 88 | 84 |
| 89 bool StickyKeysController::HandleKeyEvent(const ui::KeyEvent& event, | 85 bool StickyKeysController::HandleKeyEvent(const ui::KeyEvent& event, |
| 90 ui::KeyboardCode key_code, | 86 ui::KeyboardCode key_code, |
| 91 int* mod_down_flags, | 87 int* mod_down_flags, |
| 92 bool* released) { | 88 bool* released) { |
| 93 return shift_sticky_key_->HandleKeyEvent( | 89 return shift_sticky_key_->HandleKeyEvent(event, key_code, mod_down_flags, |
| 94 event, key_code, mod_down_flags, released) || | 90 released) || |
| 95 alt_sticky_key_->HandleKeyEvent( | 91 alt_sticky_key_->HandleKeyEvent(event, key_code, mod_down_flags, |
| 96 event, key_code, mod_down_flags, released) || | 92 released) || |
| 97 altgr_sticky_key_->HandleKeyEvent( | 93 altgr_sticky_key_->HandleKeyEvent(event, key_code, mod_down_flags, |
| 98 event, key_code, mod_down_flags, released) || | 94 released) || |
| 99 ctrl_sticky_key_->HandleKeyEvent( | 95 ctrl_sticky_key_->HandleKeyEvent(event, key_code, mod_down_flags, |
| 100 event, key_code, mod_down_flags, released) || | 96 released) || |
| 101 mod3_sticky_key_->HandleKeyEvent( | 97 mod3_sticky_key_->HandleKeyEvent(event, key_code, mod_down_flags, |
| 102 event, key_code, mod_down_flags, released) || | 98 released) || |
| 103 search_sticky_key_->HandleKeyEvent( | 99 search_sticky_key_->HandleKeyEvent(event, key_code, mod_down_flags, |
| 104 event, key_code, mod_down_flags, released); | 100 released); |
| 105 } | 101 } |
| 106 | 102 |
| 107 bool StickyKeysController::HandleMouseEvent(const ui::MouseEvent& event, | 103 bool StickyKeysController::HandleMouseEvent(const ui::MouseEvent& event, |
| 108 int* mod_down_flags, | 104 int* mod_down_flags, |
| 109 bool* released) { | 105 bool* released) { |
| 110 return shift_sticky_key_->HandleMouseEvent( | 106 return shift_sticky_key_->HandleMouseEvent(event, mod_down_flags, released) || |
| 111 event, mod_down_flags, released) || | 107 alt_sticky_key_->HandleMouseEvent(event, mod_down_flags, released) || |
| 112 alt_sticky_key_->HandleMouseEvent( | 108 altgr_sticky_key_->HandleMouseEvent(event, mod_down_flags, released) || |
| 113 event, mod_down_flags, released) || | 109 ctrl_sticky_key_->HandleMouseEvent(event, mod_down_flags, released) || |
| 114 altgr_sticky_key_->HandleMouseEvent( | 110 mod3_sticky_key_->HandleMouseEvent(event, mod_down_flags, released); |
| 115 event, mod_down_flags, released) || | |
| 116 ctrl_sticky_key_->HandleMouseEvent( | |
| 117 event, mod_down_flags, released) || | |
| 118 mod3_sticky_key_->HandleMouseEvent( | |
| 119 event, mod_down_flags, released); | |
| 120 } | 111 } |
| 121 | 112 |
| 122 bool StickyKeysController::HandleScrollEvent(const ui::ScrollEvent& event, | 113 bool StickyKeysController::HandleScrollEvent(const ui::ScrollEvent& event, |
| 123 int* mod_down_flags, | 114 int* mod_down_flags, |
| 124 bool* released) { | 115 bool* released) { |
| 125 return shift_sticky_key_->HandleScrollEvent( | 116 return shift_sticky_key_->HandleScrollEvent(event, mod_down_flags, |
| 126 event, mod_down_flags, released) || | 117 released) || |
| 127 alt_sticky_key_->HandleScrollEvent( | 118 alt_sticky_key_->HandleScrollEvent(event, mod_down_flags, released) || |
| 128 event, mod_down_flags, released) || | 119 altgr_sticky_key_->HandleScrollEvent(event, mod_down_flags, |
| 129 altgr_sticky_key_->HandleScrollEvent( | 120 released) || |
| 130 event, mod_down_flags, released) || | 121 ctrl_sticky_key_->HandleScrollEvent(event, mod_down_flags, released) || |
| 131 ctrl_sticky_key_->HandleScrollEvent( | 122 mod3_sticky_key_->HandleScrollEvent(event, mod_down_flags, released); |
| 132 event, mod_down_flags, released) || | |
| 133 mod3_sticky_key_->HandleScrollEvent( | |
| 134 event, mod_down_flags, released); | |
| 135 } | 123 } |
| 136 | 124 |
| 137 ui::EventRewriteStatus StickyKeysController::RewriteKeyEvent( | 125 ui::EventRewriteStatus StickyKeysController::RewriteKeyEvent( |
| 138 const ui::KeyEvent& event, | 126 const ui::KeyEvent& event, |
| 139 ui::KeyboardCode key_code, | 127 ui::KeyboardCode key_code, |
| 140 int* flags) { | 128 int* flags) { |
| 141 if (!enabled_) | 129 if (!enabled_) |
| 142 return ui::EVENT_REWRITE_CONTINUE; | 130 return ui::EVENT_REWRITE_CONTINUE; |
| 143 int mod_down_flags = 0; | 131 int mod_down_flags = 0; |
| 144 bool released = false; | 132 bool released = false; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 mod3_sticky_key_->GetModifierUpEvent(new_event) + | 170 mod3_sticky_key_->GetModifierUpEvent(new_event) + |
| 183 search_sticky_key_->GetModifierUpEvent(new_event); | 171 search_sticky_key_->GetModifierUpEvent(new_event); |
| 184 if (!new_event) | 172 if (!new_event) |
| 185 return ui::EVENT_REWRITE_CONTINUE; | 173 return ui::EVENT_REWRITE_CONTINUE; |
| 186 if (remaining) | 174 if (remaining) |
| 187 return ui::EVENT_REWRITE_DISPATCH_ANOTHER; | 175 return ui::EVENT_REWRITE_DISPATCH_ANOTHER; |
| 188 return ui::EVENT_REWRITE_REWRITTEN; | 176 return ui::EVENT_REWRITE_REWRITTEN; |
| 189 } | 177 } |
| 190 | 178 |
| 191 void StickyKeysController::UpdateOverlay() { | 179 void StickyKeysController::UpdateOverlay() { |
| 192 overlay_->SetModifierKeyState( | 180 overlay_->SetModifierKeyState(ui::EF_SHIFT_DOWN, |
| 193 ui::EF_SHIFT_DOWN, shift_sticky_key_->current_state()); | 181 shift_sticky_key_->current_state()); |
| 194 overlay_->SetModifierKeyState( | 182 overlay_->SetModifierKeyState(ui::EF_CONTROL_DOWN, |
| 195 ui::EF_CONTROL_DOWN, ctrl_sticky_key_->current_state()); | 183 ctrl_sticky_key_->current_state()); |
| 196 overlay_->SetModifierKeyState( | 184 overlay_->SetModifierKeyState(ui::EF_ALT_DOWN, |
| 197 ui::EF_ALT_DOWN, alt_sticky_key_->current_state()); | 185 alt_sticky_key_->current_state()); |
| 198 overlay_->SetModifierKeyState( | 186 overlay_->SetModifierKeyState(ui::EF_COMMAND_DOWN, |
| 199 ui::EF_COMMAND_DOWN, search_sticky_key_->current_state()); | 187 search_sticky_key_->current_state()); |
| 200 overlay_->SetModifierKeyState( | 188 overlay_->SetModifierKeyState(ui::EF_ALTGR_DOWN, |
| 201 ui::EF_ALTGR_DOWN, altgr_sticky_key_->current_state()); | 189 altgr_sticky_key_->current_state()); |
| 202 overlay_->SetModifierKeyState( | 190 overlay_->SetModifierKeyState(ui::EF_MOD3_DOWN, |
| 203 ui::EF_MOD3_DOWN, mod3_sticky_key_->current_state()); | 191 mod3_sticky_key_->current_state()); |
| 204 | 192 |
| 205 bool key_in_use = | 193 bool key_in_use = |
| 206 shift_sticky_key_->current_state() != STICKY_KEY_STATE_DISABLED || | 194 shift_sticky_key_->current_state() != STICKY_KEY_STATE_DISABLED || |
| 207 alt_sticky_key_->current_state() != STICKY_KEY_STATE_DISABLED || | 195 alt_sticky_key_->current_state() != STICKY_KEY_STATE_DISABLED || |
| 208 altgr_sticky_key_->current_state() != STICKY_KEY_STATE_DISABLED || | 196 altgr_sticky_key_->current_state() != STICKY_KEY_STATE_DISABLED || |
| 209 ctrl_sticky_key_->current_state() != STICKY_KEY_STATE_DISABLED || | 197 ctrl_sticky_key_->current_state() != STICKY_KEY_STATE_DISABLED || |
| 210 search_sticky_key_->current_state() != STICKY_KEY_STATE_DISABLED || | 198 search_sticky_key_->current_state() != STICKY_KEY_STATE_DISABLED || |
| 211 mod3_sticky_key_->current_state() != STICKY_KEY_STATE_DISABLED; | 199 mod3_sticky_key_->current_state() != STICKY_KEY_STATE_DISABLED; |
| 212 | 200 |
| 213 overlay_->Show(enabled_ && key_in_use); | 201 overlay_->Show(enabled_ && key_in_use); |
| 214 } | 202 } |
| 215 | 203 |
| 216 StickyKeysOverlay* StickyKeysController::GetOverlayForTest() { | 204 StickyKeysOverlay* StickyKeysController::GetOverlayForTest() { |
| 217 return overlay_.get(); | 205 return overlay_.get(); |
| 218 } | 206 } |
| 219 | 207 |
| 220 /////////////////////////////////////////////////////////////////////////////// | 208 /////////////////////////////////////////////////////////////////////////////// |
| 221 // StickyKeysHandler | 209 // StickyKeysHandler |
| 222 StickyKeysHandler::StickyKeysHandler(ui::EventFlags modifier_flag) | 210 StickyKeysHandler::StickyKeysHandler(ui::EventFlags modifier_flag) |
| 223 : modifier_flag_(modifier_flag), | 211 : modifier_flag_(modifier_flag), |
| 224 current_state_(STICKY_KEY_STATE_DISABLED), | 212 current_state_(STICKY_KEY_STATE_DISABLED), |
| 225 preparing_to_enable_(false), | 213 preparing_to_enable_(false), |
| 226 scroll_delta_(0) { | 214 scroll_delta_(0) {} |
| 227 } | |
| 228 | 215 |
| 229 StickyKeysHandler::~StickyKeysHandler() { | 216 StickyKeysHandler::~StickyKeysHandler() {} |
| 230 } | |
| 231 | 217 |
| 232 bool StickyKeysHandler::HandleKeyEvent(const ui::KeyEvent& event, | 218 bool StickyKeysHandler::HandleKeyEvent(const ui::KeyEvent& event, |
| 233 ui::KeyboardCode key_code, | 219 ui::KeyboardCode key_code, |
| 234 int* mod_down_flags, | 220 int* mod_down_flags, |
| 235 bool* released) { | 221 bool* released) { |
| 236 switch (current_state_) { | 222 switch (current_state_) { |
| 237 case STICKY_KEY_STATE_DISABLED: | 223 case STICKY_KEY_STATE_DISABLED: |
| 238 return HandleDisabledState(event, key_code); | 224 return HandleDisabledState(event, key_code); |
| 239 case STICKY_KEY_STATE_ENABLED: | 225 case STICKY_KEY_STATE_ENABLED: |
| 240 return HandleEnabledState(event, key_code, mod_down_flags, released); | 226 return HandleEnabledState(event, key_code, mod_down_flags, released); |
| 241 case STICKY_KEY_STATE_LOCKED: | 227 case STICKY_KEY_STATE_LOCKED: |
| 242 return HandleLockedState(event, key_code, mod_down_flags, released); | 228 return HandleLockedState(event, key_code, mod_down_flags, released); |
| 243 } | 229 } |
| 244 NOTREACHED(); | 230 NOTREACHED(); |
| 245 return false; | 231 return false; |
| 246 } | 232 } |
| 247 | 233 |
| 248 bool StickyKeysHandler::HandleMouseEvent( | 234 bool StickyKeysHandler::HandleMouseEvent(const ui::MouseEvent& event, |
| 249 const ui::MouseEvent& event, | 235 int* mod_down_flags, |
| 250 int* mod_down_flags, | 236 bool* released) { |
| 251 bool* released) { | |
| 252 if (ShouldModifyMouseEvent(event)) | 237 if (ShouldModifyMouseEvent(event)) |
| 253 preparing_to_enable_ = false; | 238 preparing_to_enable_ = false; |
| 254 | 239 |
| 255 if (current_state_ == STICKY_KEY_STATE_DISABLED || | 240 if (current_state_ == STICKY_KEY_STATE_DISABLED || |
| 256 !ShouldModifyMouseEvent(event)) { | 241 !ShouldModifyMouseEvent(event)) { |
| 257 return false; | 242 return false; |
| 258 } | 243 } |
| 259 DCHECK(current_state_ == STICKY_KEY_STATE_ENABLED || | 244 DCHECK(current_state_ == STICKY_KEY_STATE_ENABLED || |
| 260 current_state_ == STICKY_KEY_STATE_LOCKED); | 245 current_state_ == STICKY_KEY_STATE_LOCKED); |
| 261 | 246 |
| 262 *mod_down_flags |= modifier_flag_; | 247 *mod_down_flags |= modifier_flag_; |
| 263 // Only disable on the mouse released event in normal, non-locked mode. | 248 // Only disable on the mouse released event in normal, non-locked mode. |
| 264 if (current_state_ == STICKY_KEY_STATE_ENABLED && | 249 if (current_state_ == STICKY_KEY_STATE_ENABLED && |
| 265 event.type() != ui::ET_MOUSE_PRESSED) { | 250 event.type() != ui::ET_MOUSE_PRESSED) { |
| 266 current_state_ = STICKY_KEY_STATE_DISABLED; | 251 current_state_ = STICKY_KEY_STATE_DISABLED; |
| 267 *released = true; | 252 *released = true; |
| 268 return false; | 253 return false; |
| 269 } | 254 } |
| 270 | 255 |
| 271 return false; | 256 return false; |
| 272 } | 257 } |
| 273 | 258 |
| 274 bool StickyKeysHandler::HandleScrollEvent( | 259 bool StickyKeysHandler::HandleScrollEvent(const ui::ScrollEvent& event, |
| 275 const ui::ScrollEvent& event, | 260 int* mod_down_flags, |
| 276 int* mod_down_flags, | 261 bool* released) { |
| 277 bool* released) { | |
| 278 preparing_to_enable_ = false; | 262 preparing_to_enable_ = false; |
| 279 if (current_state_ == STICKY_KEY_STATE_DISABLED) | 263 if (current_state_ == STICKY_KEY_STATE_DISABLED) |
| 280 return false; | 264 return false; |
| 281 DCHECK(current_state_ == STICKY_KEY_STATE_ENABLED || | 265 DCHECK(current_state_ == STICKY_KEY_STATE_ENABLED || |
| 282 current_state_ == STICKY_KEY_STATE_LOCKED); | 266 current_state_ == STICKY_KEY_STATE_LOCKED); |
| 283 | 267 |
| 284 // We detect a direction change if the current |scroll_delta_| is assigned | 268 // We detect a direction change if the current |scroll_delta_| is assigned |
| 285 // and the offset of the current scroll event has the opposing sign. | 269 // and the offset of the current scroll event has the opposing sign. |
| 286 bool direction_changed = false; | 270 bool direction_changed = false; |
| 287 if (current_state_ == STICKY_KEY_STATE_ENABLED && | 271 if (current_state_ == STICKY_KEY_STATE_ENABLED && |
| (...skipping 29 matching lines...) Expand all Loading... |
| 317 if (*new_event) | 301 if (*new_event) |
| 318 return 1; | 302 return 1; |
| 319 new_event->reset(modifier_up_event_.release()); | 303 new_event->reset(modifier_up_event_.release()); |
| 320 return 0; | 304 return 0; |
| 321 } | 305 } |
| 322 | 306 |
| 323 StickyKeysHandler::KeyEventType StickyKeysHandler::TranslateKeyEvent( | 307 StickyKeysHandler::KeyEventType StickyKeysHandler::TranslateKeyEvent( |
| 324 ui::EventType type, | 308 ui::EventType type, |
| 325 ui::KeyboardCode key_code) { | 309 ui::KeyboardCode key_code) { |
| 326 bool is_target_key = false; | 310 bool is_target_key = false; |
| 327 if (key_code == ui::VKEY_SHIFT || | 311 if (key_code == ui::VKEY_SHIFT || key_code == ui::VKEY_LSHIFT || |
| 328 key_code == ui::VKEY_LSHIFT || | |
| 329 key_code == ui::VKEY_RSHIFT) { | 312 key_code == ui::VKEY_RSHIFT) { |
| 330 is_target_key = (modifier_flag_ == ui::EF_SHIFT_DOWN); | 313 is_target_key = (modifier_flag_ == ui::EF_SHIFT_DOWN); |
| 331 } else if (key_code == ui::VKEY_CONTROL || | 314 } else if (key_code == ui::VKEY_CONTROL || key_code == ui::VKEY_LCONTROL || |
| 332 key_code == ui::VKEY_LCONTROL || | 315 key_code == ui::VKEY_RCONTROL) { |
| 333 key_code == ui::VKEY_RCONTROL) { | |
| 334 is_target_key = (modifier_flag_ == ui::EF_CONTROL_DOWN); | 316 is_target_key = (modifier_flag_ == ui::EF_CONTROL_DOWN); |
| 335 } else if (key_code == ui::VKEY_MENU || | 317 } else if (key_code == ui::VKEY_MENU || key_code == ui::VKEY_LMENU || |
| 336 key_code == ui::VKEY_LMENU || | 318 key_code == ui::VKEY_RMENU) { |
| 337 key_code == ui::VKEY_RMENU) { | |
| 338 is_target_key = (modifier_flag_ == ui::EF_ALT_DOWN); | 319 is_target_key = (modifier_flag_ == ui::EF_ALT_DOWN); |
| 339 } else if (key_code == ui::VKEY_ALTGR) { | 320 } else if (key_code == ui::VKEY_ALTGR) { |
| 340 is_target_key = (modifier_flag_ == ui::EF_ALTGR_DOWN); | 321 is_target_key = (modifier_flag_ == ui::EF_ALTGR_DOWN); |
| 341 } else if (key_code == ui::VKEY_OEM_8) { | 322 } else if (key_code == ui::VKEY_OEM_8) { |
| 342 is_target_key = (modifier_flag_ == ui::EF_MOD3_DOWN); | 323 is_target_key = (modifier_flag_ == ui::EF_MOD3_DOWN); |
| 343 } else if (key_code == ui::VKEY_LWIN) { | 324 } else if (key_code == ui::VKEY_LWIN) { |
| 344 is_target_key = (modifier_flag_ == ui::EF_COMMAND_DOWN); | 325 is_target_key = (modifier_flag_ == ui::EF_COMMAND_DOWN); |
| 345 } else { | 326 } else { |
| 346 return type == ui::ET_KEY_PRESSED ? | 327 return type == ui::ET_KEY_PRESSED ? NORMAL_KEY_DOWN : NORMAL_KEY_UP; |
| 347 NORMAL_KEY_DOWN : NORMAL_KEY_UP; | |
| 348 } | 328 } |
| 349 | 329 |
| 350 if (is_target_key) { | 330 if (is_target_key) { |
| 351 return type == ui::ET_KEY_PRESSED ? | 331 return type == ui::ET_KEY_PRESSED ? TARGET_MODIFIER_DOWN |
| 352 TARGET_MODIFIER_DOWN : TARGET_MODIFIER_UP; | 332 : TARGET_MODIFIER_UP; |
| 353 } | 333 } |
| 354 return type == ui::ET_KEY_PRESSED ? | 334 return type == ui::ET_KEY_PRESSED ? OTHER_MODIFIER_DOWN : OTHER_MODIFIER_UP; |
| 355 OTHER_MODIFIER_DOWN : OTHER_MODIFIER_UP; | |
| 356 } | 335 } |
| 357 | 336 |
| 358 bool StickyKeysHandler::HandleDisabledState(const ui::KeyEvent& event, | 337 bool StickyKeysHandler::HandleDisabledState(const ui::KeyEvent& event, |
| 359 ui::KeyboardCode key_code) { | 338 ui::KeyboardCode key_code) { |
| 360 switch (TranslateKeyEvent(event.type(), key_code)) { | 339 switch (TranslateKeyEvent(event.type(), key_code)) { |
| 361 case TARGET_MODIFIER_UP: | 340 case TARGET_MODIFIER_UP: |
| 362 if (preparing_to_enable_) { | 341 if (preparing_to_enable_) { |
| 363 preparing_to_enable_ = false; | 342 preparing_to_enable_ = false; |
| 364 scroll_delta_ = 0; | 343 scroll_delta_ = 0; |
| 365 current_state_ = STICKY_KEY_STATE_ENABLED; | 344 current_state_ = STICKY_KEY_STATE_ENABLED; |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 return false; | 403 return false; |
| 425 case OTHER_MODIFIER_DOWN: | 404 case OTHER_MODIFIER_DOWN: |
| 426 case OTHER_MODIFIER_UP: | 405 case OTHER_MODIFIER_UP: |
| 427 return false; | 406 return false; |
| 428 } | 407 } |
| 429 NOTREACHED(); | 408 NOTREACHED(); |
| 430 return false; | 409 return false; |
| 431 } | 410 } |
| 432 | 411 |
| 433 } // namespace ash | 412 } // namespace ash |
| OLD | NEW |