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

Side by Side 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, 3 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 unified diff | 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/keycodes/keyboard_code_conversion_xkb.h" 5 #include "ui/events/keycodes/keyboard_code_conversion_xkb.h"
6 6
7 #include "ui/events/keycodes/dom/dom_key.h" 7 #include "ui/events/keycodes/dom/dom_key.h"
8 #include "ui/events/keycodes/keyboard_code_conversion.h" 8 #include "ui/events/keycodes/keyboard_code_conversion.h"
9 9
10 #ifndef XK_dead_greek
11 #define XK_dead_greek 0xfe8c
12 #endif
13
10 namespace ui { 14 namespace ui {
11 15
12 DomKey NonPrintableXKeySymToDomKey(xkb_keysym_t keysym) { 16 DomKey NonPrintableXKeySymToDomKey(xkb_keysym_t keysym) {
13 switch (keysym) { 17 switch (keysym) {
14 case XKB_KEY_BackSpace: 18 case XKB_KEY_BackSpace:
15 return DomKey::BACKSPACE; 19 return DomKey::BACKSPACE;
16 case XKB_KEY_Tab: 20 case XKB_KEY_Tab:
17 case XKB_KEY_KP_Tab: 21 case XKB_KEY_KP_Tab:
18 case XKB_KEY_ISO_Left_Tab: 22 case XKB_KEY_ISO_Left_Tab:
19 return DomKey::TAB; 23 return DomKey::TAB;
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 return DomKey::SHIFT_LEVEL5; 350 return DomKey::SHIFT_LEVEL5;
347 case XKB_KEY_ISO_Next_Group: 351 case XKB_KEY_ISO_Next_Group:
348 return DomKey::GROUP_NEXT; 352 return DomKey::GROUP_NEXT;
349 case XKB_KEY_ISO_Prev_Group: 353 case XKB_KEY_ISO_Prev_Group:
350 return DomKey::GROUP_PREVIOUS; 354 return DomKey::GROUP_PREVIOUS;
351 case XKB_KEY_ISO_First_Group: 355 case XKB_KEY_ISO_First_Group:
352 return DomKey::GROUP_FIRST; 356 return DomKey::GROUP_FIRST;
353 case XKB_KEY_ISO_Last_Group: 357 case XKB_KEY_ISO_Last_Group:
354 return DomKey::GROUP_LAST; 358 return DomKey::GROUP_LAST;
355 case XKB_KEY_dead_grave: 359 case XKB_KEY_dead_grave:
360 // combining grave accent
361 return DomKey::DeadKeyFromCombiningCharacter(0x0300);
356 case XKB_KEY_dead_acute: 362 case XKB_KEY_dead_acute:
363 // combining acute accent
364 return DomKey::DeadKeyFromCombiningCharacter(0x0301);
357 case XKB_KEY_dead_circumflex: 365 case XKB_KEY_dead_circumflex:
366 // combining circumflex accent
367 return DomKey::DeadKeyFromCombiningCharacter(0x0302);
358 case XKB_KEY_dead_tilde: 368 case XKB_KEY_dead_tilde:
369 // combining tilde
370 return DomKey::DeadKeyFromCombiningCharacter(0x0303);
359 case XKB_KEY_dead_macron: 371 case XKB_KEY_dead_macron:
372 // combining macron
373 return DomKey::DeadKeyFromCombiningCharacter(0x0304);
360 case XKB_KEY_dead_breve: 374 case XKB_KEY_dead_breve:
375 // combining breve
376 return DomKey::DeadKeyFromCombiningCharacter(0x0306);
361 case XKB_KEY_dead_abovedot: 377 case XKB_KEY_dead_abovedot:
378 // combining dot above
379 return DomKey::DeadKeyFromCombiningCharacter(0x0307);
362 case XKB_KEY_dead_diaeresis: 380 case XKB_KEY_dead_diaeresis:
381 // combining diaeresis
382 return DomKey::DeadKeyFromCombiningCharacter(0x0308);
363 case XKB_KEY_dead_abovering: 383 case XKB_KEY_dead_abovering:
384 // combining ring above
385 return DomKey::DeadKeyFromCombiningCharacter(0x030A);
364 case XKB_KEY_dead_doubleacute: 386 case XKB_KEY_dead_doubleacute:
387 // combining double acute accent
388 return DomKey::DeadKeyFromCombiningCharacter(0x030B);
365 case XKB_KEY_dead_caron: 389 case XKB_KEY_dead_caron:
390 // combining caron
391 return DomKey::DeadKeyFromCombiningCharacter(0x030C);
366 case XKB_KEY_dead_cedilla: 392 case XKB_KEY_dead_cedilla:
393 // combining cedilla
394 return DomKey::DeadKeyFromCombiningCharacter(0x0327);
367 case XKB_KEY_dead_ogonek: 395 case XKB_KEY_dead_ogonek:
396 // combining ogonek
397 return DomKey::DeadKeyFromCombiningCharacter(0x0328);
368 case XKB_KEY_dead_iota: 398 case XKB_KEY_dead_iota:
399 // combining greek ypogegrammeni
400 return DomKey::DeadKeyFromCombiningCharacter(0x0345);
401 case XKB_KEY_dead_voiced_sound:
402 // combining voiced sound mark
403 return DomKey::DeadKeyFromCombiningCharacter(0x3099);
404 case XKB_KEY_dead_semivoiced_sound:
405 // combining semi-voiced sound mark
406 return DomKey::DeadKeyFromCombiningCharacter(0x309A);
369 case XKB_KEY_dead_belowdot: 407 case XKB_KEY_dead_belowdot:
408 // combining dot below
409 return DomKey::DeadKeyFromCombiningCharacter(0x0323);
370 case XKB_KEY_dead_hook: 410 case XKB_KEY_dead_hook:
411 // combining hook above
412 return DomKey::DeadKeyFromCombiningCharacter(0x0309);
371 case XKB_KEY_dead_horn: 413 case XKB_KEY_dead_horn:
414 // combining horn
415 return DomKey::DeadKeyFromCombiningCharacter(0x031B);
372 case XKB_KEY_dead_stroke: 416 case XKB_KEY_dead_stroke:
417 // combining long solidus overlay
418 return DomKey::DeadKeyFromCombiningCharacter(0x0338);
373 case XKB_KEY_dead_abovecomma: 419 case XKB_KEY_dead_abovecomma:
420 // combining comma above
421 return DomKey::DeadKeyFromCombiningCharacter(0x0313);
374 case XKB_KEY_dead_abovereversedcomma: 422 case XKB_KEY_dead_abovereversedcomma:
423 // combining reversed comma above
424 return DomKey::DeadKeyFromCombiningCharacter(0x0314);
375 case XKB_KEY_dead_doublegrave: 425 case XKB_KEY_dead_doublegrave:
426 // combining double grave accent
427 return DomKey::DeadKeyFromCombiningCharacter(0x030F);
376 case XKB_KEY_dead_belowring: 428 case XKB_KEY_dead_belowring:
429 // combining ring below
430 return DomKey::DeadKeyFromCombiningCharacter(0x0325);
377 case XKB_KEY_dead_belowmacron: 431 case XKB_KEY_dead_belowmacron:
432 // combining macron below
433 return DomKey::DeadKeyFromCombiningCharacter(0x0331);
378 case XKB_KEY_dead_belowcircumflex: 434 case XKB_KEY_dead_belowcircumflex:
435 // combining circumflex accent below
436 return DomKey::DeadKeyFromCombiningCharacter(0x032D);
379 case XKB_KEY_dead_belowtilde: 437 case XKB_KEY_dead_belowtilde:
438 // combining tilde below
439 return DomKey::DeadKeyFromCombiningCharacter(0x0330);
380 case XKB_KEY_dead_belowbreve: 440 case XKB_KEY_dead_belowbreve:
441 // combining breve below
442 return DomKey::DeadKeyFromCombiningCharacter(0x032E);
381 case XKB_KEY_dead_belowdiaeresis: 443 case XKB_KEY_dead_belowdiaeresis:
444 // combining diaeresis below
445 return DomKey::DeadKeyFromCombiningCharacter(0x0324);
382 case XKB_KEY_dead_invertedbreve: 446 case XKB_KEY_dead_invertedbreve:
447 // combining inverted breve
448 return DomKey::DeadKeyFromCombiningCharacter(0x0311);
383 case XKB_KEY_dead_belowcomma: 449 case XKB_KEY_dead_belowcomma:
450 // combining comma below
451 return DomKey::DeadKeyFromCombiningCharacter(0x0326);
384 case XKB_KEY_dead_currency: 452 case XKB_KEY_dead_currency:
385 return DomKey::DEAD; 453 // currency sign
454 return DomKey::DeadKeyFromCombiningCharacter(0x00A4);
455 case XKB_KEY_dead_greek:
456 // greek question mark
457 return DomKey::DeadKeyFromCombiningCharacter(0x037E);
386 default: 458 default:
387 return DomKey::NONE; 459 return DomKey::NONE;
388 } 460 }
389 } 461 }
390 462
391 DomKey XKeySymToDomKey(xkb_keysym_t keysym, base::char16 character) { 463 DomKey XKeySymToDomKey(xkb_keysym_t keysym, base::char16 character) {
392 DomKey dom_key = NonPrintableXKeySymToDomKey(keysym); 464 DomKey dom_key = NonPrintableXKeySymToDomKey(keysym);
393 if (dom_key == DomKey::NONE) 465 if (dom_key != DomKey::NONE)
394 dom_key = CharacterToDomKey(character); 466 return dom_key;
395 return dom_key; 467 return DomKey::FromCharacter(character);
396 } 468 }
397 469
398 } // namespace ui 470 } // namespace ui
OLDNEW
« 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