Fixes issue with not deleting matched deadkeys on touch paths.

This commit is contained in:
Joshua A. Horton 2018-02-21 09:07:40 +07:00
parent e2d5ed4125
commit 27db3f984b
2 changed files with 452 additions and 2 deletions

View file

@ -670,6 +670,12 @@ class KeyboardInterface {
}
this.keymanweb.touchAliasing.setTextBeforeCaret(Pelem,t);
// Adjust deadkey positions
this._DeadkeyDeleteMatched(); // I3318
if(dn >= 0) {
this._DeadkeyAdjustPos(this._SelPos(Pelem), -dn + s._kmwLength()); // I3318,I3319
}
return;
}
@ -801,8 +807,6 @@ class KeyboardInterface {
// Aim to put the newest deadkeys first.
this._DeadKeys=[Lc].concat(this._DeadKeys);
// _DebugDeadKeys(Pelem, 'KDeadKeyOutput: dn='+Pdn+'; deadKey='+Pd);
// It's possible to have deadkey-only rules.
this._DeadkeyDeleteMatched();
}
/**

View file

@ -632,6 +632,452 @@
"output": "(P)(Q)(R)"
}
]
},
{
"constraint": {
"target": "phone",
"validOSList": null,
"validBrowsers": null
},
"testSet": [
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_B"
}
],
"output": "(a)(b)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_B"
}
],
"output": "(b)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_B"
},
{
"type": "osk",
"keyID": "default-K_B"
}
],
"output": "(b)+(b)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_B"
},
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_B"
}
],
"output": "(b)+(a)+(b)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_C"
}
],
"output": "x"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_D"
},
{
"type": "osk",
"keyID": "default-K_E"
}
],
"output": "(a)(d)(e)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_F"
},
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_D"
},
{
"type": "osk",
"keyID": "default-K_E"
}
],
"output": "(f)-(a)-(d)-(e)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_S"
},
{
"type": "osk",
"keyID": "default-K_PERIOD"
}
],
"output": "(a)-(s)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_S"
},
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_PERIOD"
}
],
"output": "(s)+(a)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_M"
},
{
"type": "osk",
"keyID": "default-K_PERIOD"
}
],
"output": "dk(m)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_N"
},
{
"type": "osk",
"keyID": "default-K_PERIOD"
}
],
"output": "dk(n)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_O"
},
{
"type": "osk",
"keyID": "default-K_PERIOD"
}
],
"output": "dk(o)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_P"
},
{
"type": "osk",
"keyID": "default-K_Q"
},
{
"type": "osk",
"keyID": "default-K_R"
}
],
"output": "(p)(q)(r)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_SHIFT"
},
{
"type": "osk",
"keyID": "shift-K_P"
},
{
"type": "osk",
"keyID": "shift-K_Q"
},
{
"type": "osk",
"keyID": "shift-K_R"
}
],
"output": "(P)(Q)(R)"
}
]
},
{
"constraint": {
"target": "tablet",
"validOSList": null,
"validBrowsers": null
},
"testSet": [
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_B"
}
],
"output": "(a)(b)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_B"
}
],
"output": "(b)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_B"
},
{
"type": "osk",
"keyID": "default-K_B"
}
],
"output": "(b)+(b)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_B"
},
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_B"
}
],
"output": "(b)+(a)+(b)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_C"
}
],
"output": "x"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_D"
},
{
"type": "osk",
"keyID": "default-K_E"
}
],
"output": "(a)(d)(e)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_F"
},
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_D"
},
{
"type": "osk",
"keyID": "default-K_E"
}
],
"output": "(f)-(a)-(d)-(e)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_S"
},
{
"type": "osk",
"keyID": "default-K_PERIOD"
}
],
"output": "(a)-(s)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_S"
},
{
"type": "osk",
"keyID": "default-K_A"
},
{
"type": "osk",
"keyID": "default-K_PERIOD"
}
],
"output": "(s)+(a)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_M"
},
{
"type": "osk",
"keyID": "default-K_PERIOD"
}
],
"output": "dk(m)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_N"
},
{
"type": "osk",
"keyID": "default-K_PERIOD"
}
],
"output": "dk(n)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_O"
},
{
"type": "osk",
"keyID": "default-K_PERIOD"
}
],
"output": "dk(o)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "default-K_P"
},
{
"type": "osk",
"keyID": "default-K_Q"
},
{
"type": "osk",
"keyID": "default-K_R"
}
],
"output": "(p)(q)(r)"
},
{
"inputs": [
{
"type": "osk",
"keyID": "K_SHIFT"
},
{
"type": "osk",
"keyID": "shift-K_P"
},
{
"type": "osk",
"keyID": "shift-K_Q"
},
{
"type": "osk",
"keyID": "shift-K_R"
}
],
"output": "(P)(Q)(R)"
}
]
}
]
}