diff --git a/android/KMEA/app/src/main/assets/keyboard.html b/android/KMEA/app/src/main/assets/keyboard.html index a6a4acb0e1..9f0e8d8d69 100644 --- a/android/KMEA/app/src/main/assets/keyboard.html +++ b/android/KMEA/app/src/main/assets/keyboard.html @@ -238,7 +238,8 @@ var keyPos = x.toString() + ',' + y.toString(); for(i=0; i 0) { - layer = keyName.substring(0, separatorIndex); + displayLayer = keyName.substring(0, separatorIndex); keyName = keyName.substring(separatorIndex+1); } - if(layer == 'undefined') { - layer=core.keyboardProcessor.layerId; + if(displayLayer == 'undefined') { + displayLayer=core.keyboardProcessor.layerId; + } + + // Determine the "functional" layer + let layer = 'default'; + separatorIndex = keyName.lastIndexOf('+'); + if (separatorIndex > 0) { + layer = keyName.substring(separatorIndex+1); } // Note: this assumes Lelem is properly attached and has an element interface. @@ -425,6 +432,11 @@ namespace com.keyman.text { console.warn("No base key exists for the subkey being executed: '" + origArg + "'"); } + // Now that we've checked if key is found, split "functional layer" from keyName + if (separatorIndex > 0) { + keyName = keyName.substring(0, separatorIndex); + } + let Codes = com.keyman.text.Codes; // Check the virtual key @@ -435,6 +447,8 @@ namespace com.keyman.text { Lcode: Codes.keyCodes[keyName], LisVirtualKey: true, kName: keyName, + kLayer: layer, + kbdLayer: displayLayer, kNextLayer: nextLayer, vkCode: null, // was originally undefined isSynthetic: true,