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

Unified Diff: chrome/browser/automation/ui_controls_aurax11.cc

Issue 8836007: Convert keysym to keycode for modifiers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 9 years 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 | « no previous file | ui/base/keycodes/keyboard_code_conversion_x.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/automation/ui_controls_aurax11.cc
diff --git a/chrome/browser/automation/ui_controls_aurax11.cc b/chrome/browser/automation/ui_controls_aurax11.cc
index 021ca101003a630e08d1ea051bba43606a3bea2d..2080a1dc15f30af59cd951f05e7cba10956895a3 100644
--- a/chrome/browser/automation/ui_controls_aurax11.cc
+++ b/chrome/browser/automation/ui_controls_aurax11.cc
@@ -90,20 +90,24 @@ bool SendKeyPress(gfx::NativeWindow window,
window, key, control, shift, alt, command, base::Closure());
}
-void SetMaskAndKeycodeThenSend(XEvent* xevent,
- unsigned int mask,
- unsigned int keycode) {
- xevent->xkey.state |= mask;
- xevent->xkey.keycode = keycode;
+void SetKeycodeAndSendThenMask(XEvent* xevent,
+ KeySym keysym,
+ unsigned int mask) {
+ xevent->xkey.keycode =
+ XKeysymToKeycode(base::MessagePumpX::GetDefaultXDisplay(),
+ keysym);
aura::RootWindow::GetInstance()->PostNativeEvent(xevent);
+ xevent->xkey.state |= mask;
}
-void SetKeycodeAndSendThenUnmask(XEvent* xevent,
+void UnmaskAndSetKeycodeThenSend(XEvent* xevent,
unsigned int mask,
- unsigned int keycode) {
- xevent->xkey.keycode = keycode;
- aura::RootWindow::GetInstance()->PostNativeEvent(xevent);
+ KeySym keysym) {
xevent->xkey.state ^= mask;
+ xevent->xkey.keycode =
+ XKeysymToKeycode(base::MessagePumpX::GetDefaultXDisplay(),
+ keysym);
+ aura::RootWindow::GetInstance()->PostNativeEvent(xevent);
}
bool SendKeyPressNotifyWhenDone(gfx::NativeWindow window,
@@ -117,11 +121,11 @@ bool SendKeyPressNotifyWhenDone(gfx::NativeWindow window,
XEvent xevent = {0};
xevent.xkey.type = KeyPress;
if (control)
- SetMaskAndKeycodeThenSend(&xevent, ControlMask, XK_Control_L);
+ SetKeycodeAndSendThenMask(&xevent, XK_Control_L, ControlMask);
if (shift)
- SetMaskAndKeycodeThenSend(&xevent, ShiftMask, XK_Shift_L);
+ SetKeycodeAndSendThenMask(&xevent, XK_Shift_L, ShiftMask);
if (alt)
- SetMaskAndKeycodeThenSend(&xevent, Mod1Mask, XK_Alt_L);
+ SetKeycodeAndSendThenMask(&xevent, XK_Alt_L, Mod1Mask);
xevent.xkey.keycode =
XKeysymToKeycode(base::MessagePumpX::GetDefaultXDisplay(),
ui::XKeysymForWindowsKeyCode(key, shift));
@@ -131,11 +135,11 @@ bool SendKeyPressNotifyWhenDone(gfx::NativeWindow window,
xevent.xkey.type = KeyRelease;
aura::RootWindow::GetInstance()->PostNativeEvent(&xevent);
if (alt)
- SetKeycodeAndSendThenUnmask(&xevent, Mod1Mask, XK_Alt_L);
+ UnmaskAndSetKeycodeThenSend(&xevent, Mod1Mask, XK_Alt_L);
if (shift)
- SetKeycodeAndSendThenUnmask(&xevent, ShiftMask, XK_Shift_L);
+ UnmaskAndSetKeycodeThenSend(&xevent, ShiftMask, XK_Shift_L);
if (control)
- SetKeycodeAndSendThenUnmask(&xevent, ControlMask, XK_Control_L);
+ UnmaskAndSetKeycodeThenSend(&xevent, ControlMask, XK_Control_L);
DCHECK(!xevent.xkey.state);
RunClosureAfterAllPendingUIEvents(closure);
return true;
« no previous file with comments | « no previous file | ui/base/keycodes/keyboard_code_conversion_x.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698