From 611ed0eefc437d8362e6528196b1749930f2a8c0 Mon Sep 17 00:00:00 2001 From: James Sanford Date: Wed, 21 Nov 2012 18:51:49 -0800 Subject: [PATCH] Fix keyboard on API 10-12 devices. --- src/com/froop/app/kegs/KegsKeyboard.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/com/froop/app/kegs/KegsKeyboard.java b/src/com/froop/app/kegs/KegsKeyboard.java index 21ed561..0972ffb 100644 --- a/src/com/froop/app/kegs/KegsKeyboard.java +++ b/src/com/froop/app/kegs/KegsKeyboard.java @@ -127,23 +127,23 @@ class KegsKeyboard { // return true; } if (event.getAction() == KeyEvent.ACTION_DOWN) { - final int modifiers = event.getModifiers(); - handled = keyModifiers(modifiers, false); + final int meta = event.getMetaState(); + handled = keyModifiers(meta, false); final int keyCode = event.getKeyCode(); if (keymap != null && keymap.isPrintingKey(keyCode)) { - int meta = event.getMetaState(); // Remove meta states that we handle to get a meaningful ASCII result. - meta &= ~(KeyEvent.META_ALT_LEFT_ON | KeyEvent.META_ALT_RIGHT_ON | KeyEvent.META_ALT_ON); - meta &= ~(KeyEvent.META_META_LEFT_ON | KeyEvent.META_META_RIGHT_ON | KeyEvent.META_META_ON); - meta &= ~(KeyEvent.META_CTRL_LEFT_ON | KeyEvent.META_CTRL_RIGHT_ON | KeyEvent.META_CTRL_ON); - int key_id = keymap.get(keyCode, meta); + int reduced_meta = meta; + reduced_meta &= ~(KeyEvent.META_ALT_LEFT_ON | KeyEvent.META_ALT_RIGHT_ON | KeyEvent.META_ALT_ON); + reduced_meta &= ~(KeyEvent.META_META_LEFT_ON | KeyEvent.META_META_RIGHT_ON | KeyEvent.META_META_ON); + reduced_meta &= ~(KeyEvent.META_CTRL_LEFT_ON | KeyEvent.META_CTRL_RIGHT_ON | KeyEvent.META_CTRL_ON); + int key_id = keymap.get(keyCode, reduced_meta); handled = handleAsciiKey(key_id) | handled; } else { handled = handleOtherKey(keyCode) | handled; } // Release any modifiers that may have been pressed. // BUG: ACTION_UP for this is not working, so just toggle them here. - handled = keyModifiers(modifiers, true) | handled; + handled = keyModifiers(meta, true) | handled; } return handled; }