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 <X11/keysym.h> | 7 #include <X11/keysym.h> |
8 #include <X11/XF86keysym.h> | 8 #include <X11/XF86keysym.h> |
9 #include <X11/Xlib.h> | 9 #include <X11/Xlib.h> |
10 #undef Bool | 10 #undef Bool |
(...skipping 1168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1179 EventRewriter rewriter; | 1179 EventRewriter rewriter; |
1180 rewriter.set_pref_service_for_testing(&prefs); | 1180 rewriter.set_pref_service_for_testing(&prefs); |
1181 | 1181 |
1182 struct { | 1182 struct { |
1183 ui::KeyboardCode input; | 1183 ui::KeyboardCode input; |
1184 unsigned int input_mods; | 1184 unsigned int input_mods; |
1185 ui::KeyboardCode output; | 1185 ui::KeyboardCode output; |
1186 unsigned int output_mods; | 1186 unsigned int output_mods; |
1187 } tests[] = { | 1187 } tests[] = { |
1188 // F1 -> Back | 1188 // F1 -> Back |
1189 {ui::VKEY_F1, ui::EF_NONE, ui::VKEY_BROWSER_BACK, ui::EF_NONE}, | 1189 {ui::VKEY_F1, ui::EF_NONE, ui::VKEY_BROWSER_BACK, ui::EF_FUNCTION_KEY}, |
1190 {ui::VKEY_F1, ui::EF_CONTROL_DOWN, ui::VKEY_BROWSER_BACK, | 1190 {ui::VKEY_F1, ui::EF_CONTROL_DOWN, ui::VKEY_BROWSER_BACK, |
1191 ui::EF_CONTROL_DOWN}, | 1191 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}, |
1192 {ui::VKEY_F1, ui::EF_ALT_DOWN, ui::VKEY_BROWSER_BACK, ui::EF_ALT_DOWN}, | 1192 {ui::VKEY_F1, ui::EF_ALT_DOWN, ui::VKEY_BROWSER_BACK, |
| 1193 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}, |
1193 // F2 -> Forward | 1194 // F2 -> Forward |
1194 {ui::VKEY_F2, ui::EF_NONE, ui::VKEY_BROWSER_FORWARD, ui::EF_NONE}, | 1195 {ui::VKEY_F2, ui::EF_NONE, ui::VKEY_BROWSER_FORWARD, |
| 1196 ui::EF_FUNCTION_KEY}, |
1195 {ui::VKEY_F2, ui::EF_CONTROL_DOWN, ui::VKEY_BROWSER_FORWARD, | 1197 {ui::VKEY_F2, ui::EF_CONTROL_DOWN, ui::VKEY_BROWSER_FORWARD, |
1196 ui::EF_CONTROL_DOWN}, | 1198 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}, |
1197 {ui::VKEY_F2, ui::EF_ALT_DOWN, ui::VKEY_BROWSER_FORWARD, | 1199 {ui::VKEY_F2, ui::EF_ALT_DOWN, ui::VKEY_BROWSER_FORWARD, |
1198 ui::EF_ALT_DOWN}, | 1200 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}, |
1199 // F3 -> Refresh | 1201 // F3 -> Refresh |
1200 {ui::VKEY_F3, ui::EF_NONE, ui::VKEY_BROWSER_REFRESH, ui::EF_NONE}, | 1202 {ui::VKEY_F3, ui::EF_NONE, ui::VKEY_BROWSER_REFRESH, |
| 1203 ui::EF_FUNCTION_KEY}, |
1201 {ui::VKEY_F3, ui::EF_CONTROL_DOWN, ui::VKEY_BROWSER_REFRESH, | 1204 {ui::VKEY_F3, ui::EF_CONTROL_DOWN, ui::VKEY_BROWSER_REFRESH, |
1202 ui::EF_CONTROL_DOWN}, | 1205 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}, |
1203 {ui::VKEY_F3, ui::EF_ALT_DOWN, ui::VKEY_BROWSER_REFRESH, | 1206 {ui::VKEY_F3, ui::EF_ALT_DOWN, ui::VKEY_BROWSER_REFRESH, |
1204 ui::EF_ALT_DOWN}, | 1207 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}, |
1205 // F4 -> Launch App 2 | 1208 // F4 -> Launch App 2 |
1206 {ui::VKEY_F4, ui::EF_NONE, ui::VKEY_MEDIA_LAUNCH_APP2, ui::EF_NONE}, | 1209 {ui::VKEY_F4, ui::EF_NONE, ui::VKEY_MEDIA_LAUNCH_APP2, |
| 1210 ui::EF_FUNCTION_KEY}, |
1207 {ui::VKEY_F4, ui::EF_CONTROL_DOWN, ui::VKEY_MEDIA_LAUNCH_APP2, | 1211 {ui::VKEY_F4, ui::EF_CONTROL_DOWN, ui::VKEY_MEDIA_LAUNCH_APP2, |
1208 ui::EF_CONTROL_DOWN}, | 1212 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}, |
1209 {ui::VKEY_F4, ui::EF_ALT_DOWN, ui::VKEY_MEDIA_LAUNCH_APP2, | 1213 {ui::VKEY_F4, ui::EF_ALT_DOWN, ui::VKEY_MEDIA_LAUNCH_APP2, |
1210 ui::EF_ALT_DOWN}, | 1214 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}, |
1211 // F5 -> Launch App 1 | 1215 // F5 -> Launch App 1 |
1212 {ui::VKEY_F5, ui::EF_NONE, ui::VKEY_MEDIA_LAUNCH_APP1, ui::EF_NONE}, | 1216 {ui::VKEY_F5, ui::EF_NONE, ui::VKEY_MEDIA_LAUNCH_APP1, |
| 1217 ui::EF_FUNCTION_KEY}, |
1213 {ui::VKEY_F5, ui::EF_CONTROL_DOWN, ui::VKEY_MEDIA_LAUNCH_APP1, | 1218 {ui::VKEY_F5, ui::EF_CONTROL_DOWN, ui::VKEY_MEDIA_LAUNCH_APP1, |
1214 ui::EF_CONTROL_DOWN}, | 1219 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}, |
1215 {ui::VKEY_F5, ui::EF_ALT_DOWN, ui::VKEY_MEDIA_LAUNCH_APP1, | 1220 {ui::VKEY_F5, ui::EF_ALT_DOWN, ui::VKEY_MEDIA_LAUNCH_APP1, |
1216 ui::EF_ALT_DOWN}, | 1221 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}, |
1217 // F6 -> Brightness down | 1222 // F6 -> Brightness down |
1218 {ui::VKEY_F6, ui::EF_NONE, ui::VKEY_BRIGHTNESS_DOWN, ui::EF_NONE}, | 1223 {ui::VKEY_F6, ui::EF_NONE, ui::VKEY_BRIGHTNESS_DOWN, |
| 1224 ui::EF_FUNCTION_KEY}, |
1219 {ui::VKEY_F6, ui::EF_CONTROL_DOWN, ui::VKEY_BRIGHTNESS_DOWN, | 1225 {ui::VKEY_F6, ui::EF_CONTROL_DOWN, ui::VKEY_BRIGHTNESS_DOWN, |
1220 ui::EF_CONTROL_DOWN}, | 1226 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}, |
1221 {ui::VKEY_F6, ui::EF_ALT_DOWN, ui::VKEY_BRIGHTNESS_DOWN, | 1227 {ui::VKEY_F6, ui::EF_ALT_DOWN, ui::VKEY_BRIGHTNESS_DOWN, |
1222 ui::EF_ALT_DOWN}, | 1228 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}, |
1223 // F7 -> Brightness up | 1229 // F7 -> Brightness up |
1224 {ui::VKEY_F7, ui::EF_NONE, ui::VKEY_BRIGHTNESS_UP, ui::EF_NONE}, | 1230 {ui::VKEY_F7, ui::EF_NONE, ui::VKEY_BRIGHTNESS_UP, ui::EF_FUNCTION_KEY}, |
1225 {ui::VKEY_F7, ui::EF_CONTROL_DOWN, ui::VKEY_BRIGHTNESS_UP, | 1231 {ui::VKEY_F7, ui::EF_CONTROL_DOWN, ui::VKEY_BRIGHTNESS_UP, |
1226 ui::EF_CONTROL_DOWN}, | 1232 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}, |
1227 {ui::VKEY_F7, ui::EF_ALT_DOWN, ui::VKEY_BRIGHTNESS_UP, ui::EF_ALT_DOWN}, | 1233 {ui::VKEY_F7, ui::EF_ALT_DOWN, ui::VKEY_BRIGHTNESS_UP, |
| 1234 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}, |
1228 // F8 -> Volume Mute | 1235 // F8 -> Volume Mute |
1229 {ui::VKEY_F8, ui::EF_NONE, ui::VKEY_VOLUME_MUTE, ui::EF_NONE}, | 1236 {ui::VKEY_F8, ui::EF_NONE, ui::VKEY_VOLUME_MUTE, ui::EF_FUNCTION_KEY}, |
1230 {ui::VKEY_F8, ui::EF_CONTROL_DOWN, ui::VKEY_VOLUME_MUTE, | 1237 {ui::VKEY_F8, ui::EF_CONTROL_DOWN, ui::VKEY_VOLUME_MUTE, |
1231 ui::EF_CONTROL_DOWN}, | 1238 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}, |
1232 {ui::VKEY_F8, ui::EF_ALT_DOWN, ui::VKEY_VOLUME_MUTE, ui::EF_ALT_DOWN}, | 1239 {ui::VKEY_F8, ui::EF_ALT_DOWN, ui::VKEY_VOLUME_MUTE, |
| 1240 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}, |
1233 // F9 -> Volume Down | 1241 // F9 -> Volume Down |
1234 {ui::VKEY_F9, ui::EF_NONE, ui::VKEY_VOLUME_DOWN, ui::EF_NONE}, | 1242 {ui::VKEY_F9, ui::EF_NONE, ui::VKEY_VOLUME_DOWN, ui::EF_FUNCTION_KEY}, |
1235 {ui::VKEY_F9, ui::EF_CONTROL_DOWN, ui::VKEY_VOLUME_DOWN, | 1243 {ui::VKEY_F9, ui::EF_CONTROL_DOWN, ui::VKEY_VOLUME_DOWN, |
1236 ui::EF_CONTROL_DOWN}, | 1244 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}, |
1237 {ui::VKEY_F9, ui::EF_ALT_DOWN, ui::VKEY_VOLUME_DOWN, ui::EF_ALT_DOWN}, | 1245 {ui::VKEY_F9, ui::EF_ALT_DOWN, ui::VKEY_VOLUME_DOWN, |
| 1246 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}, |
1238 // F10 -> Volume Up | 1247 // F10 -> Volume Up |
1239 {ui::VKEY_F10, ui::EF_NONE, ui::VKEY_VOLUME_UP, ui::EF_NONE}, | 1248 {ui::VKEY_F10, ui::EF_NONE, ui::VKEY_VOLUME_UP, ui::EF_FUNCTION_KEY}, |
1240 {ui::VKEY_F10, ui::EF_CONTROL_DOWN, ui::VKEY_VOLUME_UP, | 1249 {ui::VKEY_F10, ui::EF_CONTROL_DOWN, ui::VKEY_VOLUME_UP, |
1241 ui::EF_CONTROL_DOWN}, | 1250 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}, |
1242 {ui::VKEY_F10, ui::EF_ALT_DOWN, ui::VKEY_VOLUME_UP, ui::EF_ALT_DOWN}, | 1251 {ui::VKEY_F10, ui::EF_ALT_DOWN, ui::VKEY_VOLUME_UP, |
| 1252 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}, |
1243 // F11 -> F11 | 1253 // F11 -> F11 |
1244 {ui::VKEY_F11, ui::EF_NONE, ui::VKEY_F11, ui::EF_NONE}, | 1254 {ui::VKEY_F11, ui::EF_NONE, ui::VKEY_F11, ui::EF_FUNCTION_KEY}, |
1245 {ui::VKEY_F11, ui::EF_CONTROL_DOWN, ui::VKEY_F11, ui::EF_CONTROL_DOWN}, | 1255 {ui::VKEY_F11, ui::EF_CONTROL_DOWN, ui::VKEY_F11, |
1246 {ui::VKEY_F11, ui::EF_ALT_DOWN, ui::VKEY_F11, ui::EF_ALT_DOWN}, | 1256 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}, |
| 1257 {ui::VKEY_F11, ui::EF_ALT_DOWN, ui::VKEY_F11, |
| 1258 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}, |
1247 // F12 -> F12 | 1259 // F12 -> F12 |
1248 {ui::VKEY_F12, ui::EF_NONE, ui::VKEY_F12, ui::EF_NONE}, | 1260 {ui::VKEY_F12, ui::EF_NONE, ui::VKEY_F12, ui::EF_FUNCTION_KEY}, |
1249 {ui::VKEY_F12, ui::EF_CONTROL_DOWN, ui::VKEY_F12, ui::EF_CONTROL_DOWN}, | 1261 {ui::VKEY_F12, ui::EF_CONTROL_DOWN, ui::VKEY_F12, |
1250 {ui::VKEY_F12, ui::EF_ALT_DOWN, ui::VKEY_F12, ui::EF_ALT_DOWN}, | 1262 ui::EF_CONTROL_DOWN | ui::EF_FUNCTION_KEY}, |
| 1263 {ui::VKEY_F12, ui::EF_ALT_DOWN, ui::VKEY_F12, |
| 1264 ui::EF_ALT_DOWN | ui::EF_FUNCTION_KEY}, |
1251 | 1265 |
1252 // The number row should not be rewritten without Search key. | 1266 // The number row should not be rewritten without Search key. |
1253 {ui::VKEY_1, ui::EF_NONE, ui::VKEY_1, ui::EF_NONE}, | 1267 {ui::VKEY_1, ui::EF_NONE, ui::VKEY_1, ui::EF_NONE}, |
1254 {ui::VKEY_2, ui::EF_NONE, ui::VKEY_2, ui::EF_NONE}, | 1268 {ui::VKEY_2, ui::EF_NONE, ui::VKEY_2, ui::EF_NONE}, |
1255 {ui::VKEY_3, ui::EF_NONE, ui::VKEY_3, ui::EF_NONE}, | 1269 {ui::VKEY_3, ui::EF_NONE, ui::VKEY_3, ui::EF_NONE}, |
1256 {ui::VKEY_4, ui::EF_NONE, ui::VKEY_4, ui::EF_NONE}, | 1270 {ui::VKEY_4, ui::EF_NONE, ui::VKEY_4, ui::EF_NONE}, |
1257 {ui::VKEY_5, ui::EF_NONE, ui::VKEY_5, ui::EF_NONE}, | 1271 {ui::VKEY_5, ui::EF_NONE, ui::VKEY_5, ui::EF_NONE}, |
1258 {ui::VKEY_6, ui::EF_NONE, ui::VKEY_6, ui::EF_NONE}, | 1272 {ui::VKEY_6, ui::EF_NONE, ui::VKEY_6, ui::EF_NONE}, |
1259 {ui::VKEY_7, ui::EF_NONE, ui::VKEY_7, ui::EF_NONE}, | 1273 {ui::VKEY_7, ui::EF_NONE, ui::VKEY_7, ui::EF_NONE}, |
1260 {ui::VKEY_8, ui::EF_NONE, ui::VKEY_8, ui::EF_NONE}, | 1274 {ui::VKEY_8, ui::EF_NONE, ui::VKEY_8, ui::EF_NONE}, |
(...skipping 11 matching lines...) Expand all Loading... |
1272 {ui::VKEY_5, ui::EF_COMMAND_DOWN, ui::VKEY_F5, ui::EF_NONE}, | 1286 {ui::VKEY_5, ui::EF_COMMAND_DOWN, ui::VKEY_F5, ui::EF_NONE}, |
1273 {ui::VKEY_6, ui::EF_COMMAND_DOWN, ui::VKEY_F6, ui::EF_NONE}, | 1287 {ui::VKEY_6, ui::EF_COMMAND_DOWN, ui::VKEY_F6, ui::EF_NONE}, |
1274 {ui::VKEY_7, ui::EF_COMMAND_DOWN, ui::VKEY_F7, ui::EF_NONE}, | 1288 {ui::VKEY_7, ui::EF_COMMAND_DOWN, ui::VKEY_F7, ui::EF_NONE}, |
1275 {ui::VKEY_8, ui::EF_COMMAND_DOWN, ui::VKEY_F8, ui::EF_NONE}, | 1289 {ui::VKEY_8, ui::EF_COMMAND_DOWN, ui::VKEY_F8, ui::EF_NONE}, |
1276 {ui::VKEY_9, ui::EF_COMMAND_DOWN, ui::VKEY_F9, ui::EF_NONE}, | 1290 {ui::VKEY_9, ui::EF_COMMAND_DOWN, ui::VKEY_F9, ui::EF_NONE}, |
1277 {ui::VKEY_0, ui::EF_COMMAND_DOWN, ui::VKEY_F10, ui::EF_NONE}, | 1291 {ui::VKEY_0, ui::EF_COMMAND_DOWN, ui::VKEY_F10, ui::EF_NONE}, |
1278 {ui::VKEY_OEM_MINUS, ui::EF_COMMAND_DOWN, ui::VKEY_F11, ui::EF_NONE}, | 1292 {ui::VKEY_OEM_MINUS, ui::EF_COMMAND_DOWN, ui::VKEY_F11, ui::EF_NONE}, |
1279 {ui::VKEY_OEM_PLUS, ui::EF_COMMAND_DOWN, ui::VKEY_F12, ui::EF_NONE}, | 1293 {ui::VKEY_OEM_PLUS, ui::EF_COMMAND_DOWN, ui::VKEY_F12, ui::EF_NONE}, |
1280 | 1294 |
1281 // The function keys should not be rewritten with Search key pressed. | 1295 // The function keys should not be rewritten with Search key pressed. |
1282 {ui::VKEY_F1, ui::EF_COMMAND_DOWN, ui::VKEY_F1, ui::EF_NONE}, | 1296 {ui::VKEY_F1, ui::EF_COMMAND_DOWN, ui::VKEY_F1, ui::EF_FUNCTION_KEY}, |
1283 {ui::VKEY_F2, ui::EF_COMMAND_DOWN, ui::VKEY_F2, ui::EF_NONE}, | 1297 {ui::VKEY_F2, ui::EF_COMMAND_DOWN, ui::VKEY_F2, ui::EF_FUNCTION_KEY}, |
1284 {ui::VKEY_F3, ui::EF_COMMAND_DOWN, ui::VKEY_F3, ui::EF_NONE}, | 1298 {ui::VKEY_F3, ui::EF_COMMAND_DOWN, ui::VKEY_F3, ui::EF_FUNCTION_KEY}, |
1285 {ui::VKEY_F4, ui::EF_COMMAND_DOWN, ui::VKEY_F4, ui::EF_NONE}, | 1299 {ui::VKEY_F4, ui::EF_COMMAND_DOWN, ui::VKEY_F4, ui::EF_FUNCTION_KEY}, |
1286 {ui::VKEY_F5, ui::EF_COMMAND_DOWN, ui::VKEY_F5, ui::EF_NONE}, | 1300 {ui::VKEY_F5, ui::EF_COMMAND_DOWN, ui::VKEY_F5, ui::EF_FUNCTION_KEY}, |
1287 {ui::VKEY_F6, ui::EF_COMMAND_DOWN, ui::VKEY_F6, ui::EF_NONE}, | 1301 {ui::VKEY_F6, ui::EF_COMMAND_DOWN, ui::VKEY_F6, ui::EF_FUNCTION_KEY}, |
1288 {ui::VKEY_F7, ui::EF_COMMAND_DOWN, ui::VKEY_F7, ui::EF_NONE}, | 1302 {ui::VKEY_F7, ui::EF_COMMAND_DOWN, ui::VKEY_F7, ui::EF_FUNCTION_KEY}, |
1289 {ui::VKEY_F8, ui::EF_COMMAND_DOWN, ui::VKEY_F8, ui::EF_NONE}, | 1303 {ui::VKEY_F8, ui::EF_COMMAND_DOWN, ui::VKEY_F8, ui::EF_FUNCTION_KEY}, |
1290 {ui::VKEY_F9, ui::EF_COMMAND_DOWN, ui::VKEY_F9, ui::EF_NONE}, | 1304 {ui::VKEY_F9, ui::EF_COMMAND_DOWN, ui::VKEY_F9, ui::EF_FUNCTION_KEY}, |
1291 {ui::VKEY_F10, ui::EF_COMMAND_DOWN, ui::VKEY_F10, ui::EF_NONE}, | 1305 {ui::VKEY_F10, ui::EF_COMMAND_DOWN, ui::VKEY_F10, ui::EF_FUNCTION_KEY}, |
1292 {ui::VKEY_F11, ui::EF_COMMAND_DOWN, ui::VKEY_F11, ui::EF_NONE}, | 1306 {ui::VKEY_F11, ui::EF_COMMAND_DOWN, ui::VKEY_F11, ui::EF_FUNCTION_KEY}, |
1293 {ui::VKEY_F12, ui::EF_COMMAND_DOWN, ui::VKEY_F12, ui::EF_NONE}, | 1307 {ui::VKEY_F12, ui::EF_COMMAND_DOWN, ui::VKEY_F12, ui::EF_FUNCTION_KEY}, |
1294 }; | 1308 }; |
1295 | 1309 |
1296 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { | 1310 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { |
1297 EXPECT_EQ(GetExpectedResultNumbered( | 1311 EXPECT_EQ(GetExpectedResultNumbered( |
1298 i, tests[i].output, tests[i].output_mods, ui::ET_KEY_PRESSED), | 1312 i, tests[i].output, tests[i].output_mods, ui::ET_KEY_PRESSED), |
1299 GetRewrittenEventNumbered(i, | 1313 GetRewrittenEventNumbered(i, |
1300 &rewriter, | 1314 &rewriter, |
1301 tests[i].input, | 1315 tests[i].input, |
1302 tests[i].input_mods, | 1316 tests[i].input_mods, |
1303 ui::ET_KEY_PRESSED)); | 1317 ui::ET_KEY_PRESSED)); |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1439 // Create a simulated keypress of F1 targetted at the window. | 1453 // Create a simulated keypress of F1 targetted at the window. |
1440 ui::KeyEvent press_f1(ui::ET_KEY_PRESSED, ui::VKEY_F1, 0, false); | 1454 ui::KeyEvent press_f1(ui::ET_KEY_PRESSED, ui::VKEY_F1, 0, false); |
1441 | 1455 |
1442 // Simulate an apps v2 window that has requested top row keys as function | 1456 // Simulate an apps v2 window that has requested top row keys as function |
1443 // keys. The event should not be rewritten. | 1457 // keys. The event should not be rewritten. |
1444 window_state->set_top_row_keys_are_function_keys(true); | 1458 window_state->set_top_row_keys_are_function_keys(true); |
1445 scoped_ptr<ui::Event> rewritten_event; | 1459 scoped_ptr<ui::Event> rewritten_event; |
1446 ASSERT_FALSE(RewriteFunctionKeys(press_f1, &rewritten_event)); | 1460 ASSERT_FALSE(RewriteFunctionKeys(press_f1, &rewritten_event)); |
1447 ASSERT_FALSE(rewritten_event); | 1461 ASSERT_FALSE(rewritten_event); |
1448 EXPECT_EQ( | 1462 EXPECT_EQ( |
1449 GetExpectedResultAsString(ui::VKEY_F1, ui::EF_NONE, ui::ET_KEY_PRESSED), | 1463 GetExpectedResultAsString(ui::VKEY_F1, ui::EF_FUNCTION_KEY, |
| 1464 ui::ET_KEY_PRESSED), |
1450 GetKeyEventAsString(press_f1)); | 1465 GetKeyEventAsString(press_f1)); |
1451 | 1466 |
1452 // The event should also not be rewritten if the send-function-keys pref is | 1467 // The event should also not be rewritten if the send-function-keys pref is |
1453 // additionally set, for both apps v2 and regular windows. | 1468 // additionally set, for both apps v2 and regular windows. |
1454 BooleanPrefMember send_function_keys_pref; | 1469 BooleanPrefMember send_function_keys_pref; |
1455 send_function_keys_pref.Init(prefs::kLanguageSendFunctionKeys, &prefs_); | 1470 send_function_keys_pref.Init(prefs::kLanguageSendFunctionKeys, &prefs_); |
1456 send_function_keys_pref.SetValue(true); | 1471 send_function_keys_pref.SetValue(true); |
1457 window_state->set_top_row_keys_are_function_keys(false); | 1472 window_state->set_top_row_keys_are_function_keys(false); |
1458 ASSERT_FALSE(RewriteFunctionKeys(press_f1, &rewritten_event)); | 1473 ASSERT_FALSE(RewriteFunctionKeys(press_f1, &rewritten_event)); |
1459 ASSERT_FALSE(rewritten_event); | 1474 ASSERT_FALSE(rewritten_event); |
1460 EXPECT_EQ( | 1475 EXPECT_EQ( |
1461 GetExpectedResultAsString(ui::VKEY_F1, ui::EF_NONE, ui::ET_KEY_PRESSED), | 1476 GetExpectedResultAsString(ui::VKEY_F1, ui::EF_FUNCTION_KEY, |
| 1477 ui::ET_KEY_PRESSED), |
1462 GetKeyEventAsString(press_f1)); | 1478 GetKeyEventAsString(press_f1)); |
1463 | 1479 |
1464 // If the pref isn't set when an event is sent to a regular window, F1 is | 1480 // If the pref isn't set when an event is sent to a regular window, F1 is |
1465 // rewritten to the back key. | 1481 // rewritten to the back key. |
1466 send_function_keys_pref.SetValue(false); | 1482 send_function_keys_pref.SetValue(false); |
1467 ASSERT_TRUE(RewriteFunctionKeys(press_f1, &rewritten_event)); | 1483 ASSERT_TRUE(RewriteFunctionKeys(press_f1, &rewritten_event)); |
1468 ASSERT_TRUE(rewritten_event); | 1484 ASSERT_TRUE(rewritten_event); |
1469 EXPECT_EQ(GetExpectedResultAsString( | 1485 EXPECT_EQ(GetExpectedResultAsString( |
1470 ui::VKEY_BROWSER_BACK, ui::EF_NONE, ui::ET_KEY_PRESSED), | 1486 ui::VKEY_BROWSER_BACK, ui::EF_FUNCTION_KEY, |
| 1487 ui::ET_KEY_PRESSED), |
1471 GetKeyEventAsString( | 1488 GetKeyEventAsString( |
1472 *static_cast<const ui::KeyEvent*>(rewritten_event.get()))); | 1489 *static_cast<const ui::KeyEvent*>(rewritten_event.get()))); |
1473 } | 1490 } |
1474 | 1491 |
1475 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { | 1492 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { |
1476 std::vector<unsigned int> device_list; | 1493 std::vector<unsigned int> device_list; |
1477 device_list.push_back(10); | 1494 device_list.push_back(10); |
1478 device_list.push_back(11); | 1495 device_list.push_back(11); |
1479 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); | 1496 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); |
1480 TestingPrefServiceSyncable prefs; | 1497 TestingPrefServiceSyncable prefs; |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1540 ui::ScopedXI2Event xev; | 1557 ui::ScopedXI2Event xev; |
1541 xev.InitGenericButtonEvent( | 1558 xev.InitGenericButtonEvent( |
1542 11, ui::ET_MOUSE_RELEASED, gfx::Point(), kLeftAndAltFlag); | 1559 11, ui::ET_MOUSE_RELEASED, gfx::Point(), kLeftAndAltFlag); |
1543 ui::MouseEvent release(xev); | 1560 ui::MouseEvent release(xev); |
1544 int flags = RewriteMouseEvent(&rewriter, release); | 1561 int flags = RewriteMouseEvent(&rewriter, release); |
1545 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & flags); | 1562 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & flags); |
1546 } | 1563 } |
1547 } | 1564 } |
1548 | 1565 |
1549 } // namespace chromeos | 1566 } // namespace chromeos |
OLD | NEW |