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

Unified Diff: ui/base/ime/chromeos/character_composer.cc

Issue 324903002: Remoes X11 dependency in InputMethodEngine. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits. Created 6 years, 6 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
Index: ui/base/ime/chromeos/character_composer.cc
diff --git a/ui/base/ime/chromeos/character_composer.cc b/ui/base/ime/chromeos/character_composer.cc
index 9155b739674d27e289a44d51bfd412118c268658..b7a8808e7d1b3ecda11cc0eda264ec6dbe718c8e 100644
--- a/ui/base/ime/chromeos/character_composer.cc
+++ b/ui/base/ime/chromeos/character_composer.cc
@@ -4,9 +4,6 @@
#include "ui/base/ime/chromeos/character_composer.h"
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
#include <algorithm>
#include <iterator>
@@ -15,10 +12,10 @@
// Note for Gtk removal: gdkkeysyms.h only contains a set of
// '#define GDK_KeyName 0xNNNN' macros and does not #include any Gtk headers.
#include "third_party/gtk+/gdk/gdkkeysyms.h"
+
#include "ui/base/glib/glib_integers.h"
#include "ui/events/event.h"
-#include "ui/events/event_constants.h"
-#include "ui/gfx/x/x11_types.h"
+#include "ui/events/keycodes/keyboard_codes.h"
// Note for Gtk removal: gtkimcontextsimpleseqs.h does not #include any Gtk
// headers and only contains one big guint16 array |gtk_compose_seqs_compact|
@@ -371,19 +368,6 @@ bool UTF32CharacterToUTF16(uint32 character, base::string16* output) {
return true;
}
-// Converts a X keycode to a X keysym with no modifiers.
-KeySym XKeyCodeToXKeySym(unsigned int keycode) {
- XDisplay* display = gfx::GetXDisplay();
- if (!display)
- return NoSymbol;
-
- XKeyEvent x_key_event = {0};
- x_key_event.type = KeyPress;
- x_key_event.display = display;
- x_key_event.keycode = keycode;
- return ::XLookupKeysym(&x_key_event, 0);
-}
-
// Returns an hexadecimal digit integer (0 to 15) corresponding to |keyval|.
// -1 is returned when |keyval| cannot be a hexadecimal digit.
int KeyvalToHexDigit(unsigned int keyval) {
@@ -396,6 +380,16 @@ int KeyvalToHexDigit(unsigned int keyval) {
return -1; // |keyval| cannot be a hexadecimal digit.
}
+// Returns an hexadecimal digit integer (0 to 15) corresponding to |keycode|.
+// -1 is returned when |keycode| cannot be a hexadecimal digit.
+int KeycodeToHexDigit(unsigned int keycode) {
+ if (ui::VKEY_0 <= keycode && keycode <= ui::VKEY_9)
+ return keycode - ui::VKEY_0;
+ if (ui::VKEY_A <= keycode && keycode <= ui::VKEY_F)
+ return keycode - ui::VKEY_A + 10;
+ return -1; // |keycode| cannot be a hexadecimal digit.
+}
+
} // namespace
namespace ui {
@@ -412,16 +406,12 @@ void CharacterComposer::Reset() {
}
bool CharacterComposer::FilterKeyPress(const ui::KeyEvent& event) {
- if (!event.HasNativeEvent() ||
+ uint32 keyval = event.platform_keycode();
+ if (!keyval ||
(event.type() != ET_KEY_PRESSED && event.type() != ET_KEY_RELEASED))
return false;
- XEvent* xevent = event.native_event();
- DCHECK(xevent);
- KeySym keysym = NoSymbol;
- ::XLookupString(&xevent->xkey, NULL, 0, &keysym, NULL);
-
- return FilterKeyPressInternal(keysym, xevent->xkey.keycode, event.flags());
+ return FilterKeyPressInternal(keyval, event.key_code(), event.flags());
}
@@ -507,7 +497,7 @@ bool CharacterComposer::FilterKeyPressHexMode(unsigned int keyval,
// have intended to type '3'. So, if a hexadecimal character was not found,
// suppose a user is holding shift key (and possibly control key, too) and
// try a character with modifier keys removed.
- hex_digit = KeyvalToHexDigit(XKeyCodeToXKeySym(keycode));
+ hex_digit = KeycodeToHexDigit(keycode);
}
if (keyval == GDK_KEY_Escape) {

Powered by Google App Engine
This is Rietveld 408576698