Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Unified Diff: ui/events/keycodes/keyboard_code_conversion_xkb.cc

Issue 1284433002: Revise ui::DomKey to unify character and non-character codes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: IsDead Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/events/keycodes/keyboard_code_conversion_xkb.h ('k') | ui/events/ozone/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/keycodes/keyboard_code_conversion_xkb.cc
diff --git a/ui/events/keycodes/keyboard_code_conversion_xkb.cc b/ui/events/keycodes/keyboard_code_conversion_xkb.cc
index b84988a1ed993d59308dff5d6a890010cb571c38..284a59db0898dd09a591082b9e4d5765112fbb3a 100644
--- a/ui/events/keycodes/keyboard_code_conversion_xkb.cc
+++ b/ui/events/keycodes/keyboard_code_conversion_xkb.cc
@@ -7,6 +7,10 @@
#include "ui/events/keycodes/dom/dom_key.h"
#include "ui/events/keycodes/keyboard_code_conversion.h"
+#ifndef XK_dead_greek
+#define XK_dead_greek 0xfe8c
+#endif
+
namespace ui {
DomKey NonPrintableXKeySymToDomKey(xkb_keysym_t keysym) {
@@ -353,36 +357,104 @@ DomKey NonPrintableXKeySymToDomKey(xkb_keysym_t keysym) {
case XKB_KEY_ISO_Last_Group:
return DomKey::GROUP_LAST;
case XKB_KEY_dead_grave:
+ // combining grave accent
+ return DomKey::DeadKeyFromCombiningCharacter(0x0300);
case XKB_KEY_dead_acute:
+ // combining acute accent
+ return DomKey::DeadKeyFromCombiningCharacter(0x0301);
case XKB_KEY_dead_circumflex:
+ // combining circumflex accent
+ return DomKey::DeadKeyFromCombiningCharacter(0x0302);
case XKB_KEY_dead_tilde:
+ // combining tilde
+ return DomKey::DeadKeyFromCombiningCharacter(0x0303);
case XKB_KEY_dead_macron:
+ // combining macron
+ return DomKey::DeadKeyFromCombiningCharacter(0x0304);
case XKB_KEY_dead_breve:
+ // combining breve
+ return DomKey::DeadKeyFromCombiningCharacter(0x0306);
case XKB_KEY_dead_abovedot:
+ // combining dot above
+ return DomKey::DeadKeyFromCombiningCharacter(0x0307);
case XKB_KEY_dead_diaeresis:
+ // combining diaeresis
+ return DomKey::DeadKeyFromCombiningCharacter(0x0308);
case XKB_KEY_dead_abovering:
+ // combining ring above
+ return DomKey::DeadKeyFromCombiningCharacter(0x030A);
case XKB_KEY_dead_doubleacute:
+ // combining double acute accent
+ return DomKey::DeadKeyFromCombiningCharacter(0x030B);
case XKB_KEY_dead_caron:
+ // combining caron
+ return DomKey::DeadKeyFromCombiningCharacter(0x030C);
case XKB_KEY_dead_cedilla:
+ // combining cedilla
+ return DomKey::DeadKeyFromCombiningCharacter(0x0327);
case XKB_KEY_dead_ogonek:
+ // combining ogonek
+ return DomKey::DeadKeyFromCombiningCharacter(0x0328);
case XKB_KEY_dead_iota:
+ // combining greek ypogegrammeni
+ return DomKey::DeadKeyFromCombiningCharacter(0x0345);
+ case XKB_KEY_dead_voiced_sound:
+ // combining voiced sound mark
+ return DomKey::DeadKeyFromCombiningCharacter(0x3099);
+ case XKB_KEY_dead_semivoiced_sound:
+ // combining semi-voiced sound mark
+ return DomKey::DeadKeyFromCombiningCharacter(0x309A);
case XKB_KEY_dead_belowdot:
+ // combining dot below
+ return DomKey::DeadKeyFromCombiningCharacter(0x0323);
case XKB_KEY_dead_hook:
+ // combining hook above
+ return DomKey::DeadKeyFromCombiningCharacter(0x0309);
case XKB_KEY_dead_horn:
+ // combining horn
+ return DomKey::DeadKeyFromCombiningCharacter(0x031B);
case XKB_KEY_dead_stroke:
+ // combining long solidus overlay
+ return DomKey::DeadKeyFromCombiningCharacter(0x0338);
case XKB_KEY_dead_abovecomma:
+ // combining comma above
+ return DomKey::DeadKeyFromCombiningCharacter(0x0313);
case XKB_KEY_dead_abovereversedcomma:
+ // combining reversed comma above
+ return DomKey::DeadKeyFromCombiningCharacter(0x0314);
case XKB_KEY_dead_doublegrave:
+ // combining double grave accent
+ return DomKey::DeadKeyFromCombiningCharacter(0x030F);
case XKB_KEY_dead_belowring:
+ // combining ring below
+ return DomKey::DeadKeyFromCombiningCharacter(0x0325);
case XKB_KEY_dead_belowmacron:
+ // combining macron below
+ return DomKey::DeadKeyFromCombiningCharacter(0x0331);
case XKB_KEY_dead_belowcircumflex:
+ // combining circumflex accent below
+ return DomKey::DeadKeyFromCombiningCharacter(0x032D);
case XKB_KEY_dead_belowtilde:
+ // combining tilde below
+ return DomKey::DeadKeyFromCombiningCharacter(0x0330);
case XKB_KEY_dead_belowbreve:
+ // combining breve below
+ return DomKey::DeadKeyFromCombiningCharacter(0x032E);
case XKB_KEY_dead_belowdiaeresis:
+ // combining diaeresis below
+ return DomKey::DeadKeyFromCombiningCharacter(0x0324);
case XKB_KEY_dead_invertedbreve:
+ // combining inverted breve
+ return DomKey::DeadKeyFromCombiningCharacter(0x0311);
case XKB_KEY_dead_belowcomma:
+ // combining comma below
+ return DomKey::DeadKeyFromCombiningCharacter(0x0326);
case XKB_KEY_dead_currency:
- return DomKey::DEAD;
+ // currency sign
+ return DomKey::DeadKeyFromCombiningCharacter(0x00A4);
+ case XKB_KEY_dead_greek:
+ // greek question mark
+ return DomKey::DeadKeyFromCombiningCharacter(0x037E);
default:
return DomKey::NONE;
}
@@ -390,9 +462,9 @@ DomKey NonPrintableXKeySymToDomKey(xkb_keysym_t keysym) {
DomKey XKeySymToDomKey(xkb_keysym_t keysym, base::char16 character) {
DomKey dom_key = NonPrintableXKeySymToDomKey(keysym);
- if (dom_key == DomKey::NONE)
- dom_key = CharacterToDomKey(character);
- return dom_key;
+ if (dom_key != DomKey::NONE)
+ return dom_key;
+ return DomKey::FromCharacter(character);
}
} // namespace ui
« no previous file with comments | « ui/events/keycodes/keyboard_code_conversion_xkb.h ('k') | ui/events/ozone/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698