Fix shift detection in views on X.
authorbungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 19 Jun 2013 23:06:00 +0000 (23:06 +0000)
committerbungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 19 Jun 2013 23:06:00 +0000 (23:06 +0000)
On X, the meta keys are encoded in xkey.state, not xkey.keycode.
This fixes 'h' and 's' not working in SampleApp.

git-svn-id: http://skia.googlecode.com/svn/trunk@9694 2bbb7eff-a529-9590-31e7-b0007b416f81

src/views/unix/SkOSWindow_Unix.cpp

index 1733901..dc51f64 100644 (file)
@@ -225,7 +225,7 @@ SkOSWindow::NextXEventResult SkOSWindow::nextXEvent() {
                            SkView::Click::kMoved_State, NULL, getModi(evt));
             break;
         case KeyPress: {
-            int shiftLevel = (evt.xkey.keycode & ShiftMask) ? 1 : 0;
+            int shiftLevel = (evt.xkey.state & ShiftMask) ? 1 : 0;
             KeySym keysym = XkbKeycodeToKeysym(dsp, evt.xkey.keycode,
                                                0, shiftLevel);
             if (keysym == XK_Escape) {