Index: ash/accelerators/accelerator_controller.cc |
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc |
index f6199cc4e3024597da006da8b2c15bc9c4db337e..493e2bfc54b12cfd6e6ccc16a67e94d8f2c261f2 100644 |
--- a/ash/accelerators/accelerator_controller.cc |
+++ b/ash/accelerators/accelerator_controller.cc |
@@ -534,6 +534,15 @@ bool AcceleratorController::PerformAction(int action, |
// this key combination is reserved for partial screenshot. |
return true; |
case TOGGLE_APP_LIST: |
+ // See: case NEXT_IME. |
+ if (previous_event_type == ui::ET_KEY_RELEASED || |
+ // The LWIN binding is on release. If something else was pressed since |
+ // the LWIN key, then we should ignore the release of LWIN. |
+ (accelerator.type() == ui::ET_KEY_RELEASED && |
+ context_.previous_accelerator().key_code() != ui::VKEY_LWIN)) { |
+ // We totally ignore this accelerator. |
+ return false; |
+ } |
if (key_code == ui::VKEY_LWIN && shell->delegate()) |
shell->delegate()->RecordUserMetricsAction(UMA_ACCEL_SEARCH_LWIN); |
// When spoken feedback is enabled, we should neither toggle the list nor |