OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <cstring> | 5 #include <cstring> |
6 | 6 |
7 #include <X11/extensions/XInput2.h> | 7 #include <X11/extensions/XInput2.h> |
8 #include <X11/Xlib.h> | 8 #include <X11/Xlib.h> |
9 #include <X11/Xutil.h> | 9 #include <X11/Xutil.h> |
10 #include <X11/XKBlib.h> | 10 #include <X11/XKBlib.h> |
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
363 InitKeyEvent(display, &event, true, x_keycode, 0); | 363 InitKeyEvent(display, &event, true, x_keycode, 0); |
364 // int keysym = XLookupKeysym(&event.xkey, 0); | 364 // int keysym = XLookupKeysym(&event.xkey, 0); |
365 // if (keysym) { | 365 // if (keysym) { |
366 ui::KeyEvent ui_key_event(&event, false); | 366 ui::KeyEvent ui_key_event(&event, false); |
367 EXPECT_EQ(keys[k].is_numpad_key ? ui::EF_NUMPAD_KEY : 0, | 367 EXPECT_EQ(keys[k].is_numpad_key ? ui::EF_NUMPAD_KEY : 0, |
368 ui_key_event.flags() & ui::EF_NUMPAD_KEY); | 368 ui_key_event.flags() & ui::EF_NUMPAD_KEY); |
369 } | 369 } |
370 } | 370 } |
371 } | 371 } |
372 | 372 |
373 TEST(EventsXTest, FunctionKeyEvents) { | |
374 XEvent event; Display* display = gfx::GetXDisplay(); | |
oshima
2014/05/30 17:03:19
split to two lines
bruthig
2014/05/30 19:10:03
Done.
| |
375 | |
376 struct { | |
377 bool is_function_key; | |
378 int x_keysym; | |
379 ui::KeyboardCode ui_keycode; | |
oshima
2014/05/30 17:03:19
is this field used?
bruthig
2014/05/30 19:10:03
Done.
| |
380 } keys[] = { | |
381 // Min function key code minus 1. | |
382 { false, XK_F1-1 }, | |
oshima
2014/05/30 17:03:19
space before/after -
bruthig
2014/05/30 19:10:03
Done.
| |
383 // All function keys. | |
384 { true, XK_F1 }, | |
385 { true, XK_F2 }, | |
386 { true, XK_F3 }, | |
387 { true, XK_F4 }, | |
388 { true, XK_F5 }, | |
389 { true, XK_F6 }, | |
390 { true, XK_F7 }, | |
391 { true, XK_F8 }, | |
392 { true, XK_F9 }, | |
393 { true, XK_F10 }, | |
394 { true, XK_F11 }, | |
395 { true, XK_F12 }, | |
396 { true, XK_F13 }, | |
397 { true, XK_F14 }, | |
398 { true, XK_F15 }, | |
399 { true, XK_F16 }, | |
400 { true, XK_F17 }, | |
401 { true, XK_F18 }, | |
402 { true, XK_F19 }, | |
403 { true, XK_F20 }, | |
404 { true, XK_F21 }, | |
405 { true, XK_F22 }, | |
406 { true, XK_F23 }, | |
407 { true, XK_F24 }, | |
408 { true, XK_F25 }, | |
409 { true, XK_F26 }, | |
410 { true, XK_F27 }, | |
411 { true, XK_F28 }, | |
412 { true, XK_F29 }, | |
413 { true, XK_F30 }, | |
414 { true, XK_F31 }, | |
415 { true, XK_F32 }, | |
416 { true, XK_F33 }, | |
417 { true, XK_F34 }, | |
418 { true, XK_F35 }, | |
419 // Max function key code plus 1. | |
420 { false, XK_F35+1 } | |
oshima
2014/05/30 17:03:19
ditto
bruthig
2014/05/30 19:10:03
Done.
| |
421 }; | |
422 | |
423 for (size_t k = 0; k < ARRAYSIZE_UNSAFE(keys); ++k) { | |
424 int x_keycode = XKeysymToKeycode(display, keys[k].x_keysym); | |
425 // Exclude keysyms for which the server has no corresponding keycode. | |
426 if (x_keycode) { | |
427 InitKeyEvent(display, &event, true, x_keycode, 0); | |
428 ui::KeyEvent ui_key_event(&event, false); | |
429 EXPECT_EQ(keys[k].is_function_key ? ui::EF_FUNCTION_KEY : 0, | |
430 ui_key_event.flags() & ui::EF_FUNCTION_KEY); | |
431 } | |
oshima
2014/05/30 17:03:19
isn't it simpler to do something like
EXPECT_FALS
bruthig
2014/05/30 19:10:03
This has been re-written but this has uncovered so
| |
432 } | |
433 } | |
434 | |
373 } // namespace ui | 435 } // namespace ui |
OLD | NEW |