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

Side by Side Diff: ui/events/keycodes/keyboard_code_conversion_x.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
OLDNEW
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 "ui/events/keycodes/keyboard_code_conversion_x.h" 5 #include "ui/events/keycodes/keyboard_code_conversion_x.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #define XK_3270 // for XK_3270_BackTab 9 #define XK_3270 // for XK_3270_BackTab
10 #include <X11/XF86keysym.h> 10 #include <X11/XF86keysym.h>
(...skipping 882 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 InitXKeyEventFromXIDeviceEvent(*xev, &xkeyevent); 893 InitXKeyEventFromXIDeviceEvent(*xev, &xkeyevent);
894 xkey = &xkeyevent.xkey; 894 xkey = &xkeyevent.xkey;
895 } else { 895 } else {
896 xkey = &xev->xkey; 896 xkey = &xev->xkey;
897 } 897 }
898 KeySym keysym = XK_VoidSymbol; 898 KeySym keysym = XK_VoidSymbol;
899 XLookupString(const_cast<XKeyEvent*>(xkey), NULL, 0, &keysym, NULL); 899 XLookupString(const_cast<XKeyEvent*>(xkey), NULL, 0, &keysym, NULL);
900 return GetUnicodeCharacterFromXKeySym(keysym); 900 return GetUnicodeCharacterFromXKeySym(keysym);
901 } 901 }
902 902
903 void GetMeaningFromXEvent(const XEvent* xev, DomKey* key, base::char16* ch) { 903 DomKey GetDomKeyFromXEvent(const XEvent* xev) {
904 XEvent xkeyevent = {0}; 904 XEvent xkeyevent = {0};
905 const XKeyEvent* xkey = NULL; 905 const XKeyEvent* xkey = NULL;
906 if (xev->type == GenericEvent) { 906 if (xev->type == GenericEvent) {
907 // Convert the XI2 key event into a core key event so that we can 907 // Convert the XI2 key event into a core key event so that we can
908 // continue to use XLookupString() until crbug.com/367732 is complete. 908 // continue to use XLookupString() until crbug.com/367732 is complete.
909 InitXKeyEventFromXIDeviceEvent(*xev, &xkeyevent); 909 InitXKeyEventFromXIDeviceEvent(*xev, &xkeyevent);
910 xkey = &xkeyevent.xkey; 910 xkey = &xkeyevent.xkey;
911 } else { 911 } else {
912 xkey = &xev->xkey; 912 xkey = &xev->xkey;
913 } 913 }
914 KeySym keysym = XK_VoidSymbol; 914 KeySym keysym = XK_VoidSymbol;
915 XLookupString(const_cast<XKeyEvent*>(xkey), NULL, 0, &keysym, NULL); 915 XLookupString(const_cast<XKeyEvent*>(xkey), NULL, 0, &keysym, NULL);
916 *ch = GetUnicodeCharacterFromXKeySym(keysym); 916 base::char16 ch = GetUnicodeCharacterFromXKeySym(keysym);
917 *key = XKeySymToDomKey(keysym, *ch); 917 return XKeySymToDomKey(keysym, ch);
918 } 918 }
919 919
920 KeyboardCode DefaultKeyboardCodeFromHardwareKeycode( 920 KeyboardCode DefaultKeyboardCodeFromHardwareKeycode(
921 unsigned int hardware_code) { 921 unsigned int hardware_code) {
922 // This function assumes that X11 is using evdev-based keycodes. 922 // This function assumes that X11 is using evdev-based keycodes.
923 static const KeyboardCode kHardwareKeycodeMap[] = { 923 static const KeyboardCode kHardwareKeycodeMap[] = {
924 // Please refer to below links for the table content: 924 // Please refer to below links for the table content:
925 // http://www.w3.org/TR/DOM-Level-3-Events-code/#keyboard-101 925 // http://www.w3.org/TR/DOM-Level-3-Events-code/#keyboard-101
926 // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.keyCode 926 // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent.keyCode
927 // http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-92 3143f3456c/translate.pdf 927 // http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-92 3143f3456c/translate.pdf
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after
1402 // alone does not map to XK_less; XKeysymToKeycode() returns KEY_102ND 1402 // alone does not map to XK_less; XKeysymToKeycode() returns KEY_102ND
1403 // (the '<>' key between Shift and Z on 105-key keyboards) which does. 1403 // (the '<>' key between Shift and Z on 105-key keyboards) which does.
1404 // 1404 //
1405 // crbug.com/386066 and crbug.com/390263 are examples of problems 1405 // crbug.com/386066 and crbug.com/390263 are examples of problems
1406 // associated with this. 1406 // associated with this.
1407 // 1407 //
1408 return XKeysymToKeycode(display, XKeysymForWindowsKeyCode(key_code, false)); 1408 return XKeysymToKeycode(display, XKeysymForWindowsKeyCode(key_code, false));
1409 } 1409 }
1410 1410
1411 } // namespace ui 1411 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/keycodes/keyboard_code_conversion_x.h ('k') | ui/events/keycodes/keyboard_code_conversion_xkb.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698