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 "ui/events/ozone/layout/xkb/xkb_keyboard_code_conversion.h" | 5 #include "ui/events/keycodes/keyboard_code_conversion_xkb.h" |
6 | 6 |
7 #include "ui/events/keycodes/dom3/dom_key.h" | 7 #include "ui/events/keycodes/dom3/dom_key.h" |
| 8 #include "ui/events/keycodes/keyboard_code_conversion.h" |
8 | 9 |
9 namespace ui { | 10 namespace ui { |
10 | 11 |
11 DomKey NonPrintableXkbKeySymToDomKey(xkb_keysym_t keysym) { | 12 DomKey NonPrintableXKeySymToDomKey(xkb_keysym_t keysym) { |
12 switch (keysym) { | 13 switch (keysym) { |
13 case XKB_KEY_BackSpace: | 14 case XKB_KEY_BackSpace: |
14 return DomKey::BACKSPACE; | 15 return DomKey::BACKSPACE; |
15 case XKB_KEY_Tab: | 16 case XKB_KEY_Tab: |
16 case XKB_KEY_KP_Tab: | 17 case XKB_KEY_KP_Tab: |
17 case XKB_KEY_ISO_Left_Tab: | 18 case XKB_KEY_ISO_Left_Tab: |
18 return DomKey::TAB; | 19 return DomKey::TAB; |
19 case XKB_KEY_Clear: | 20 case XKB_KEY_Clear: |
20 case XKB_KEY_KP_Begin: | 21 case XKB_KEY_KP_Begin: |
21 case XKB_KEY_XF86Clear: | 22 case XKB_KEY_XF86Clear: |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
376 case XKB_KEY_dead_belowdiaeresis: | 377 case XKB_KEY_dead_belowdiaeresis: |
377 case XKB_KEY_dead_invertedbreve: | 378 case XKB_KEY_dead_invertedbreve: |
378 case XKB_KEY_dead_belowcomma: | 379 case XKB_KEY_dead_belowcomma: |
379 case XKB_KEY_dead_currency: | 380 case XKB_KEY_dead_currency: |
380 return DomKey::DEAD; | 381 return DomKey::DEAD; |
381 default: | 382 default: |
382 return DomKey::NONE; | 383 return DomKey::NONE; |
383 } | 384 } |
384 } | 385 } |
385 | 386 |
386 base::char16 DeadXkbKeySymToCombiningCharacter(xkb_keysym_t keysym) { | 387 DomKey XKeySymToDomKey(xkb_keysym_t keysym, base::char16 character) { |
387 switch (keysym) { | 388 DomKey dom_key = NonPrintableXKeySymToDomKey(keysym); |
388 case XKB_KEY_dead_grave: | 389 if (dom_key == DomKey::NONE) |
389 return 0x0768; // combining grave accent | 390 dom_key = CharacterToDomKey(character); |
390 case XKB_KEY_dead_acute: | 391 return dom_key; |
391 return 0x0769; // combining acute accent | |
392 case XKB_KEY_dead_circumflex: | |
393 return 0x0770; // combining circumflex accent | |
394 case XKB_KEY_dead_tilde: | |
395 return 0x0771; // combining tilde | |
396 case XKB_KEY_dead_macron: | |
397 return 0x0772; // combining macron | |
398 case XKB_KEY_dead_breve: | |
399 return 0x0774; // combining breve | |
400 case XKB_KEY_dead_abovedot: | |
401 return 0x0775; // combining dot above | |
402 case XKB_KEY_dead_diaeresis: | |
403 return 0x0776; // combining diaeresis | |
404 case XKB_KEY_dead_abovering: | |
405 return 0x0778; // combining ring above | |
406 case XKB_KEY_dead_doubleacute: | |
407 return 0x0779; // combining double acute accent | |
408 case XKB_KEY_dead_caron: | |
409 return 0x0780; // combining caron | |
410 case XKB_KEY_dead_cedilla: | |
411 return 0x0807; // combining cedilla | |
412 case XKB_KEY_dead_ogonek: | |
413 return 0x0808; // combining ogonek | |
414 case XKB_KEY_dead_iota: | |
415 return 0x0837; // combining greek ypogegrammeni | |
416 case XKB_KEY_dead_belowdot: | |
417 return 0x0803; // combining dot below | |
418 case XKB_KEY_dead_hook: | |
419 return 0x0777; // combining hook above | |
420 case XKB_KEY_dead_horn: | |
421 return 0x0795; // combining horn | |
422 case XKB_KEY_dead_stroke: | |
423 return 0x0824; // combining long solidus overlay | |
424 case XKB_KEY_dead_abovecomma: | |
425 return 0x0787; // combining comma above | |
426 case XKB_KEY_dead_abovereversedcomma: | |
427 return 0x0788; // combining reversed comma above | |
428 case XKB_KEY_dead_doublegrave: | |
429 return 0x0783; // combining double grave accent | |
430 case XKB_KEY_dead_belowring: | |
431 return 0x0805; // combining ring below | |
432 case XKB_KEY_dead_belowmacron: | |
433 return 0x0817; // combining macron below | |
434 case XKB_KEY_dead_belowcircumflex: | |
435 return 0x0813; // combining circumflex accent below | |
436 case XKB_KEY_dead_belowtilde: | |
437 return 0x0816; // combining tilde below | |
438 case XKB_KEY_dead_belowbreve: | |
439 return 0x0814; // combining breve below | |
440 case XKB_KEY_dead_belowdiaeresis: | |
441 return 0x0804; // combining diaeresis below | |
442 case XKB_KEY_dead_invertedbreve: | |
443 return 0x0785; // combining inverted breve | |
444 case XKB_KEY_dead_belowcomma: | |
445 return 0x0806; // combining comma below | |
446 case XKB_KEY_dead_currency: | |
447 return 0x0164; // currency sign | |
448 default: | |
449 return 0; | |
450 } | |
451 } | 392 } |
452 | 393 |
453 } // namespace ui | 394 } // namespace ui |
OLD | NEW |