OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "webkit/plugins/npapi/webplugin_delegate_impl.h" | 5 #include "webkit/plugins/npapi/webplugin_delegate_impl.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 | 99 |
100 bool GetSavedKeyState(WPARAM vkey) { | 100 bool GetSavedKeyState(WPARAM vkey) { |
101 CHECK_LT(vkey, kBitsPerType * sizeof(g_saved_key_state)); | 101 CHECK_LT(vkey, kBitsPerType * sizeof(g_saved_key_state)); |
102 if (g_saved_key_state[vkey / kBitsPerType] & 1 << (vkey % kBitsPerType)) | 102 if (g_saved_key_state[vkey / kBitsPerType] & 1 << (vkey % kBitsPerType)) |
103 return true; | 103 return true; |
104 return false; | 104 return false; |
105 } | 105 } |
106 | 106 |
107 void SetSavedKeyState(WPARAM vkey) { | 107 void SetSavedKeyState(WPARAM vkey) { |
108 CHECK_LT(vkey, kBitsPerType * sizeof(g_saved_key_state)); | 108 CHECK_LT(vkey, kBitsPerType * sizeof(g_saved_key_state)); |
109 g_saved_key_state[vkey / kBitsPerType] |= 1 << (vkey % kBitsPerType); | 109 // Cache the key state only for keys blocked by UIPI. |
| 110 if (g_iat_orig_get_key_state(vkey) == 0) |
| 111 g_saved_key_state[vkey / kBitsPerType] |= 1 << (vkey % kBitsPerType); |
110 } | 112 } |
111 | 113 |
112 void UnsetSavedKeyState(WPARAM vkey) { | 114 void UnsetSavedKeyState(WPARAM vkey) { |
113 CHECK_LT(vkey, kBitsPerType * sizeof(g_saved_key_state)); | 115 CHECK_LT(vkey, kBitsPerType * sizeof(g_saved_key_state)); |
114 g_saved_key_state[vkey / kBitsPerType] &= ~(1 << (vkey % kBitsPerType)); | 116 g_saved_key_state[vkey / kBitsPerType] &= ~(1 << (vkey % kBitsPerType)); |
115 } | 117 } |
116 | 118 |
117 void ClearSavedKeyState() { | 119 void ClearSavedKeyState() { |
118 memset(g_saved_key_state, 0, sizeof(g_saved_key_state)); | 120 memset(g_saved_key_state, 0, sizeof(g_saved_key_state)); |
119 } | 121 } |
(...skipping 1395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1515 ::ReleaseCapture(); | 1517 ::ReleaseCapture(); |
1516 break; | 1518 break; |
1517 | 1519 |
1518 default: | 1520 default: |
1519 break; | 1521 break; |
1520 } | 1522 } |
1521 } | 1523 } |
1522 | 1524 |
1523 } // namespace npapi | 1525 } // namespace npapi |
1524 } // namespace webkit | 1526 } // namespace webkit |
OLD | NEW |