OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/chromeos/events/event_rewriter.h" | 5 #include "chrome/browser/chromeos/events/event_rewriter.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 730 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
741 if (!remapped_key) { | 741 if (!remapped_key) { |
742 DCHECK_EQ(ui::VKEY_CONTROL, kModifierRemappingCtrl->result.key_code); | 742 DCHECK_EQ(ui::VKEY_CONTROL, kModifierRemappingCtrl->result.key_code); |
743 remapped_key = kModifierRemappingCtrl; | 743 remapped_key = kModifierRemappingCtrl; |
744 } | 744 } |
745 break; | 745 break; |
746 // On Chrome OS, XF86XK_Launch7 (F16) with Mod3Mask is sent when Caps Lock | 746 // On Chrome OS, XF86XK_Launch7 (F16) with Mod3Mask is sent when Caps Lock |
747 // is pressed (with one exception: when | 747 // is pressed (with one exception: when |
748 // IsISOLevel5ShiftUsedByCurrentInputMethod() is true, the key generates | 748 // IsISOLevel5ShiftUsedByCurrentInputMethod() is true, the key generates |
749 // XK_ISO_Level3_Shift with Mod3Mask, not XF86XK_Launch7). | 749 // XK_ISO_Level3_Shift with Mod3Mask, not XF86XK_Launch7). |
750 case ui::DomCode::F16: | 750 case ui::DomCode::F16: |
751 characteristic_flag = ui::EF_CAPS_LOCK_DOWN; | 751 characteristic_flag = ui::EF_CAPS_LOCK_ON; |
752 remapped_key = | 752 remapped_key = |
753 GetRemappedKey(prefs::kLanguageRemapCapsLockKeyTo, *pref_service); | 753 GetRemappedKey(prefs::kLanguageRemapCapsLockKeyTo, *pref_service); |
754 break; | 754 break; |
755 case ui::DomCode::OS_LEFT: | 755 case ui::DomCode::OS_LEFT: |
756 case ui::DomCode::OS_RIGHT: | 756 case ui::DomCode::OS_RIGHT: |
757 characteristic_flag = ui::EF_COMMAND_DOWN; | 757 characteristic_flag = ui::EF_COMMAND_DOWN; |
758 // Rewrite Command-L/R key presses on an Apple keyboard to Control. | 758 // Rewrite Command-L/R key presses on an Apple keyboard to Control. |
759 if (IsAppleKeyboard()) { | 759 if (IsAppleKeyboard()) { |
760 DCHECK_EQ(ui::VKEY_CONTROL, kModifierRemappingCtrl->result.key_code); | 760 DCHECK_EQ(ui::VKEY_CONTROL, kModifierRemappingCtrl->result.key_code); |
761 remapped_key = kModifierRemappingCtrl; | 761 remapped_key = kModifierRemappingCtrl; |
(...skipping 21 matching lines...) Expand all Loading... |
783 break; | 783 break; |
784 } | 784 } |
785 | 785 |
786 if (remapped_key) { | 786 if (remapped_key) { |
787 state->key_code = remapped_key->result.key_code; | 787 state->key_code = remapped_key->result.key_code; |
788 state->code = remapped_key->result.code; | 788 state->code = remapped_key->result.code; |
789 state->key = remapped_key->result.key; | 789 state->key = remapped_key->result.key; |
790 incoming.flags |= characteristic_flag; | 790 incoming.flags |= characteristic_flag; |
791 characteristic_flag = remapped_key->flag; | 791 characteristic_flag = remapped_key->flag; |
792 if (remapped_key->remap_to == input_method::kCapsLockKey) | 792 if (remapped_key->remap_to == input_method::kCapsLockKey) |
793 characteristic_flag |= ui::EF_CAPS_LOCK_DOWN; | 793 characteristic_flag |= ui::EF_CAPS_LOCK_ON; |
794 state->code = RelocateModifier( | 794 state->code = RelocateModifier( |
795 state->code, ui::KeycodeConverter::DomCodeToLocation(incoming.code)); | 795 state->code, ui::KeycodeConverter::DomCodeToLocation(incoming.code)); |
796 } | 796 } |
797 | 797 |
798 // Next, remap modifier bits. | 798 // Next, remap modifier bits. |
799 state->flags |= | 799 state->flags |= |
800 GetRemappedModifierMasks(*pref_service, key_event, incoming.flags); | 800 GetRemappedModifierMasks(*pref_service, key_event, incoming.flags); |
801 | 801 |
802 // If the DomKey is not a modifier before remapping but is after, set the | 802 // If the DomKey is not a modifier before remapping but is after, set the |
803 // modifier latches for the later non-modifier key's modifier states. | 803 // modifier latches for the later non-modifier key's modifier states. |
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1144 for (const auto& keyboard : keyboards) { | 1144 for (const auto& keyboard : keyboards) { |
1145 if (keyboard.id == device_id) { | 1145 if (keyboard.id == device_id) { |
1146 return KeyboardDeviceAddedInternal( | 1146 return KeyboardDeviceAddedInternal( |
1147 keyboard.id, keyboard.name, keyboard.vendor_id, keyboard.product_id); | 1147 keyboard.id, keyboard.name, keyboard.vendor_id, keyboard.product_id); |
1148 } | 1148 } |
1149 } | 1149 } |
1150 return kDeviceUnknown; | 1150 return kDeviceUnknown; |
1151 } | 1151 } |
1152 | 1152 |
1153 } // namespace chromeos | 1153 } // namespace chromeos |
OLD | NEW |