mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-06-01 20:32:15 +00:00
add left/right variants of alt, ctrl and meta
for picky apps, fixes GH-1579
This commit is contained in:
parent
66c3dd7a81
commit
199f177c2d
3 changed files with 16 additions and 3 deletions
|
@ -32,9 +32,15 @@ class KeyboardActionListenerImpl(private val latinIME: LatinIME, private val inp
|
|||
private fun adjustMetaState(code: Int, remove: Boolean) {
|
||||
val metaCode = when (code) {
|
||||
KeyCode.CTRL -> KeyEvent.META_CTRL_ON
|
||||
KeyCode.CTRL_LEFT -> KeyEvent.META_CTRL_LEFT_ON
|
||||
KeyCode.CTRL_RIGHT -> KeyEvent.META_CTRL_RIGHT_ON
|
||||
KeyCode.ALT -> KeyEvent.META_ALT_ON
|
||||
KeyCode.ALT_LEFT -> KeyEvent.META_ALT_LEFT_ON
|
||||
KeyCode.ALT_RIGHT -> KeyEvent.META_ALT_RIGHT_ON
|
||||
KeyCode.FN -> KeyEvent.META_FUNCTION_ON
|
||||
KeyCode.META -> KeyEvent.META_META_ON
|
||||
KeyCode.META_LEFT -> KeyEvent.META_META_LEFT_ON
|
||||
KeyCode.META_RIGHT -> KeyEvent.META_META_RIGHT_ON
|
||||
else -> return
|
||||
}
|
||||
metaState = if (remove) metaState and metaCode.inv()
|
||||
|
|
|
@ -168,6 +168,12 @@ object KeyCode {
|
|||
const val SELECT_LEFT = -10041
|
||||
const val SELECT_RIGHT = -10042
|
||||
const val TIMESTAMP = -10043
|
||||
const val CTRL_LEFT = -10044
|
||||
const val CTRL_RIGHT = -10045
|
||||
const val ALT_LEFT = -10046
|
||||
const val ALT_RIGHT = -10047
|
||||
const val META_LEFT = -10048
|
||||
const val META_RIGHT = -10049
|
||||
|
||||
/** to make sure a FlorisBoard code works when reading a JSON layout */
|
||||
fun Int.checkAndConvertCode(): Int = if (this > 0) this else when (this) {
|
||||
|
@ -184,7 +190,7 @@ object KeyCode {
|
|||
ACTION_NEXT, ACTION_PREVIOUS, NOT_SPECIFIED, CLIPBOARD_COPY_ALL, WORD_LEFT, WORD_RIGHT, PAGE_UP,
|
||||
PAGE_DOWN, META, TAB, ESCAPE, INSERT, SLEEP, MEDIA_PLAY, MEDIA_PAUSE, MEDIA_PLAY_PAUSE, MEDIA_NEXT,
|
||||
MEDIA_PREVIOUS, VOL_UP, VOL_DOWN, MUTE, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BACK,
|
||||
TIMESTAMP
|
||||
TIMESTAMP, CTRL_LEFT, CTRL_RIGHT, ALT_LEFT, ALT_RIGHT, META_LEFT, META_RIGHT
|
||||
-> this
|
||||
|
||||
// conversion
|
||||
|
|
|
@ -815,8 +815,9 @@ public final class InputLogic {
|
|||
// We need to switch to the shortcut IME. This is handled by LatinIME since the
|
||||
// input logic has no business with IME switching.
|
||||
case KeyCode.CAPS_LOCK, KeyCode.SYMBOL_ALPHA, KeyCode.ALPHA, KeyCode.SYMBOL, KeyCode.NUMPAD, KeyCode.EMOJI,
|
||||
KeyCode.TOGGLE_ONE_HANDED_MODE, KeyCode.SWITCH_ONE_HANDED_MODE,
|
||||
KeyCode.CTRL, KeyCode.ALT, KeyCode.FN, KeyCode.META:
|
||||
KeyCode.TOGGLE_ONE_HANDED_MODE, KeyCode.SWITCH_ONE_HANDED_MODE, KeyCode.FN,
|
||||
KeyCode.CTRL, KeyCode.CTRL_LEFT, KeyCode.CTRL_RIGHT, KeyCode.ALT, KeyCode.ALT_LEFT, KeyCode.ALT_RIGHT,
|
||||
KeyCode.META, KeyCode.META_LEFT, KeyCode.META_RIGHT:
|
||||
break;
|
||||
default:
|
||||
if (event.getMMetaState() != 0) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue