mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-12 03:45:34 +00:00
fix(web): Fix layers for embedded longpress keys
This commit is contained in:
parent
6c17ecbd5f
commit
e3073a4405
2 changed files with 21 additions and 6 deletions
|
|
@ -238,7 +238,8 @@
|
|||
var keyPos = x.toString() + ',' + y.toString();
|
||||
for(i=0; i<obj.length; i++)
|
||||
{
|
||||
s=s+obj[i].layer+'-'+obj[i].coreID;
|
||||
// elementID contains the layer and coreID
|
||||
s=s+obj[i].elementID;
|
||||
if(obj[i].sp == 1 || obj[i].sp == 2) shift = true;
|
||||
if(typeof(obj[i].text) != 'undefined' && obj[i].text != null && obj[i].text != '') s=s+':'+toHex(obj[i].text);
|
||||
if(i < (obj.length -1)) s=s+';'
|
||||
|
|
|
|||
|
|
@ -374,18 +374,25 @@ namespace com.keyman.text {
|
|||
/* Clear any pending (non-popup) key */
|
||||
osk.vkbd.keyPending = null;
|
||||
|
||||
// Changes for Build 353 to resolve KMEI popup key issues
|
||||
// Changes for Build 353 to resolve KMEI popup key issues
|
||||
keyName=keyName.replace('popup-',''); //remove popup prefix if present (unlikely)
|
||||
|
||||
// Can't just split on '-' because some layers like ctrl-shift contain it.
|
||||
let separatorIndex = keyName.lastIndexOf('-');
|
||||
var layer = core.keyboardProcessor.layerId;
|
||||
var displayLayer = core.keyboardProcessor.layerId;
|
||||
if (separatorIndex > 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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue