keyman
keyman copied to clipboard
bug(web): longpress up-flick shortcut usability issues - too easy to trigger
Keyman 17.0.256-alpha on Android, Samsung A53/5G phone, Android 14
In this example, the e key gets a diacritic at about 8 seconds. There are other examples as well.
https://github.com/keymanapp/keyman/assets/4498365/9927254b-d1fc-45f9-8c6b-424946cc0fe0
No, I am not attempting to type precisely or use suggested corrections for this video. :grin:
Re: one of the keypresses:
And the other:
So, remember that up-flick longpress shortcut? I'm blaming that. Sounds like we may need to take one or more of the following approaches:
- Increase the up-flick distance threshold.
- If completed via up-flick, require a certain amount of time pass; if that time doesn't elapse, the subkey-selection process gets cancelled in favor of the base key.
Here's a repro with attached video. (Logging per #11277)
Highlight in this video is at 0:11, where I intend to type a plain r
but instead get ȓ
.
https://github.com/keymanapp/keyman/assets/4498365/d4c9db40-b2cc-4ac5-bb4b-cc53687572c1
[
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_N",
"sources": [
{
"identifier": "touch:525",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 248.33334350585938,
"targetY": 138.33334350585938,
"t": 132597186,
"item": "default-K_N"
},
{
"targetX": 248.2890625,
"targetY": 138.33334350585938,
"t": 132597207.9000001,
"item": "default-K_N"
},
{
"targetX": 248.33334350585938,
"targetY": 138.33334350585938,
"t": 132597210.10000014,
"item": "default-K_N"
},
{
"targetX": 248.62240600585938,
"targetY": 137.7548828125,
"t": 132597259.60000014,
"item": "default-K_N"
},
{
"targetX": 248.6666717529297,
"targetY": 137.6666717529297,
"t": 132597268.29999995,
"item": "default-K_N"
}
],
"wasCancelled": false,
"stats": {
"netDistance": 0.7453582671771405,
"duration": 82.29999995231628,
"sampleCount": 5,
"rawDistance": 0.833920400327363
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:525"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_O",
"sources": [
{
"identifier": "touch:526",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 302.66668701171875,
"targetY": 45,
"t": 132597403.5,
"item": "default-K_O"
},
{
"targetX": 302.6224060058594,
"targetY": 45,
"t": 132597418,
"item": "default-K_O"
},
{
"targetX": 302.66668701171875,
"targetY": 45,
"t": 132597430.70000005,
"item": "default-K_O"
},
{
"targetX": 302.66668701171875,
"targetY": 45,
"t": 132597443.29999995,
"item": "default-K_O"
},
{
"targetX": 297.39422607421875,
"targetY": 50.93522644042969,
"t": 132597475.9000001,
"item": "default-K_L"
},
{
"targetX": 297.39422607421875,
"targetY": 50.93522644042969,
"t": 132597476.4000001,
"item": "default-K_L"
},
{
"targetX": 296.75946044921875,
"targetY": 51.57389831542969,
"t": 132597486.10000014,
"item": "default-K_L"
},
{
"targetX": 296.66668701171875,
"targetY": 51.66667175292969,
"t": 132597491.20000005,
"item": "default-K_L"
}
],
"wasCancelled": false,
"stats": {
"angle": 3.8744073760143007,
"cardinal": "sw",
"netDistance": 8.969086478639316,
"duration": 87.70000004768372,
"sampleCount": 8,
"rawDistance": 9.059100314101052
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:526"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "flick-start",
"linkType": "chain",
"sources": [
{
"identifier": "touch:527",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 153.6666717529297,
"targetY": 30.666671752929688,
"t": 132597516.20000005,
"item": "default-K_T"
},
{
"targetX": 153.6666717529297,
"targetY": 30.666671752929688,
"t": 132597525,
"item": "default-K_T"
},
{
"targetX": 151.5416717529297,
"targetY": 35.652671813964844,
"t": 132597577,
"item": "default-K_T"
},
{
"targetX": 148.3434295654297,
"targetY": 39.44987487792969,
"t": 132597585.70000005,
"item": "default-K_T"
},
{
"targetX": 147,
"targetY": 41,
"t": 132597591.9000001,
"item": "default-K_T"
}
],
"stats": {
"angle": 3.71455936826273,
"cardinal": "sw",
"netDistance": 12.297242980563237,
"duration": 75.70000004768372,
"sampleCount": 5,
"rawDistance": 12.435837605769263
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:527"
]
},
{
"gestureSetId": "default",
"matchedId": "flick-reset-end",
"linkType": "complete",
"item": "default-K_T",
"sources": [],
"allSourceIds": [
"touch:527"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_SPACE",
"sources": [
{
"identifier": "touch:528",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 225.6666717529297,
"targetY": 173,
"t": 132597638.60000014,
"item": "default-K_SPACE"
},
{
"targetX": 225.6666717529297,
"targetY": 172.9557342529297,
"t": 132597658.4000001,
"item": "default-K_SPACE"
},
{
"targetX": 225.6666717529297,
"targetY": 173,
"t": 132597662,
"item": "default-K_SPACE"
},
{
"targetX": 225.9557342529297,
"targetY": 172.4215545654297,
"t": 132597702.29999995,
"item": "default-K_SPACE"
},
{
"targetX": 226,
"targetY": 172.33334350585938,
"t": 132597712.10000014,
"item": "default-K_SPACE"
}
],
"wasCancelled": false,
"stats": {
"netDistance": 0.7453446192700639,
"duration": 73.5,
"sampleCount": 5,
"rawDistance": 0.833876233325523
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:528"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "longpress",
"linkType": "chain",
"sources": [
{
"identifier": "touch:529",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 134.33334350585938,
"targetY": 41.66667175292969,
"t": 132597771.10000014,
"item": "default-K_R"
},
{
"targetX": 126.07682800292969,
"targetY": 36.3798828125,
"t": 132597837.9000001,
"item": "default-K_R"
},
{
"targetX": 118.42155456542969,
"targetY": 31.377609252929688,
"t": 132597853.29999995,
"item": "default-K_R"
},
{
"targetX": 118.42155456542969,
"targetY": 31.377609252929688,
"t": 132597854.29999995,
"item": "default-K_R"
}
],
"stats": {
"angle": 5.286392476605971,
"cardinal": "nw",
"netDistance": 18.94861035574078,
"duration": 83.19999980926514,
"sampleCount": 4,
"rawDistance": 18.948812886232915
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:529"
]
},
{
"gestureSetId": "none",
"matchedId": "subkey-select",
"linkType": "complete",
"item": "popup-default-U_0213",
"sources": [
{
"identifier": "touch:529",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 134.33334350585938,
"targetY": 94.66667175292969,
"t": 132597771.10000014,
"item": "default-K_R"
},
{
"targetX": 126.07682800292969,
"targetY": 89.3798828125,
"t": 132597837.9000001,
"item": "default-K_R"
},
{
"targetX": 118.42155456542969,
"targetY": 84.37760925292969,
"t": 132597853.29999995,
"item": "default-K_R"
},
{
"targetX": 118.42155456542969,
"targetY": 84.37760925292969,
"t": 132597854.29999995,
"item": "default-K_R"
},
{
"targetX": 118.33333587646484,
"targetY": 84.33333587646484,
"t": 132597894.29999995,
"item": "popup-default-U_0213"
}
],
"wasCancelled": false,
"stats": {
"angle": 5.28582940138711,
"cardinal": "nw",
"netDistance": 19.04673395825433,
"duration": 123.19999980926514,
"sampleCount": 5,
"rawDistance": 19.047517845309315
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:529"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_E",
"sources": [
{
"identifier": "touch:530",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 88.66667175292969,
"targetY": 29,
"t": 132597932.5,
"item": "default-K_E"
},
{
"targetX": 88.66667175292969,
"targetY": 29,
"t": 132597979.70000005,
"item": "default-K_E"
}
],
"wasCancelled": false,
"stats": {
"netDistance": 0,
"duration": 47.200000047683716,
"sampleCount": 2,
"rawDistance": 0
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:530"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_O",
"sources": [
{
"identifier": "touch:531",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 322,
"targetY": 45,
"t": 132597997.20000005,
"item": "default-K_O"
},
{
"targetX": 322,
"targetY": 45,
"t": 132598089.5,
"item": "default-K_O"
}
],
"wasCancelled": false,
"stats": {
"netDistance": 0,
"duration": 92.29999995231628,
"sampleCount": 2,
"rawDistance": 0
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:531"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_R",
"sources": [
{
"identifier": "touch:532",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 129,
"targetY": 34.333335876464844,
"t": 132598172.60000014,
"item": "default-K_R"
}
],
"wasCancelled": false,
"stats": {
"netDistance": 0,
"duration": 0,
"sampleCount": 1,
"rawDistance": 0
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:532"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_O",
"sources": [
{
"identifier": "touch:533",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 308.3333435058594,
"targetY": 35.66667175292969,
"t": 132598204,
"item": "default-K_O"
}
],
"wasCancelled": false,
"stats": {
"netDistance": 0,
"duration": 0,
"sampleCount": 1,
"rawDistance": 0
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:533"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_O",
"sources": [
{
"identifier": "touch:534",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 295.66668701171875,
"targetY": 42.66667175292969,
"t": 132598347.10000014,
"item": "default-K_O"
},
{
"targetX": 295.66668701171875,
"targetY": 42.622398376464844,
"t": 132598370,
"item": "default-K_O"
},
{
"targetX": 295.66668701171875,
"targetY": 42.66667175292969,
"t": 132598381.79999995,
"item": "default-K_O"
},
{
"targetX": 295.66668701171875,
"targetY": 42.66667175292969,
"t": 132598394.4000001,
"item": "default-K_O"
},
{
"targetX": 295.66668701171875,
"targetY": 42.66667175292969,
"t": 132598404.9000001,
"item": "default-K_O"
}
],
"wasCancelled": false,
"stats": {
"netDistance": 0,
"duration": 57.799999952316284,
"sampleCount": 5,
"rawDistance": 0.0885467529296875
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:534"
]
}
]
]
Another repro.
Highlight is at 0:15 with m
intended. (I didn't notice quickly enough to get history for the first unintended r
with diacritic!)
https://github.com/keymanapp/keyman/assets/4498365/a8851e3d-d6e9-47a9-8cf6-a57fcc405e44
[
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_E",
"sources": [
{
"identifier": "touch:607",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 98.33333587646484,
"targetY": 35.333335876464844,
"t": 133006237.70000005,
"item": "default-K_E"
},
{
"targetX": 98.37760925292969,
"targetY": 35.333335876464844,
"t": 133006254.4000001,
"item": "default-K_E"
},
{
"targetX": 98.33333587646484,
"targetY": 35.333335876464844,
"t": 133006255.5,
"item": "default-K_E"
},
{
"targetX": 98.33333587646484,
"targetY": 35.333335876464844,
"t": 133006285.4000001,
"item": "default-K_E"
},
{
"targetX": 98.33333587646484,
"targetY": 35.333335876464844,
"t": 133006312.4000001,
"item": "default-K_E"
}
],
"wasCancelled": false,
"stats": {
"netDistance": 0,
"duration": 74.70000004768372,
"sampleCount": 5,
"rawDistance": 0.0885467529296875
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:607"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_SPACE",
"sources": [
{
"identifier": "touch:608",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 240,
"targetY": 172.6666717529297,
"t": 133006363.79999995,
"item": "default-K_SPACE"
},
{
"targetX": 239,
"targetY": 172.6666717529297,
"t": 133006375.9000001,
"item": "default-K_SPACE"
},
{
"targetX": 240,
"targetY": 172.6666717529297,
"t": 133006392.79999995,
"item": "default-K_SPACE"
},
{
"targetX": 237.35678100585938,
"targetY": 166.7233123779297,
"t": 133006442.29999995,
"item": "default-K_SPACE"
},
{
"targetX": 237,
"targetY": 166,
"t": 133006454.29999995,
"item": "default-K_SPACE"
}
],
"wasCancelled": false,
"stats": {
"angle": 5.860331666553952,
"cardinal": "nw",
"netDistance": 7.3105753714266974,
"duration": 90.5,
"sampleCount": 5,
"rawDistance": 9.311142895984577
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:608"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "flick-start",
"linkType": "chain",
"sources": [
{
"identifier": "touch:609",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 193,
"targetY": 130.6666717529297,
"t": 133006580.9000001,
"item": "default-K_B"
},
{
"targetX": 192.9117889404297,
"targetY": 130.7109375,
"t": 133006597.70000005,
"item": "default-K_B"
},
{
"targetX": 193,
"targetY": 130.6666717529297,
"t": 133006606.29999995,
"item": "default-K_B"
},
{
"targetX": 198.59213256835938,
"targetY": 131.9814453125,
"t": 133006656.60000014,
"item": "default-K_B"
},
{
"targetX": 202.3193359375,
"targetY": 132,
"t": 133006664.29999995,
"item": "default-K_B"
},
{
"targetX": 202.6666717529297,
"targetY": 132,
"t": 133006672.4000001,
"item": "default-K_B"
},
{
"targetX": 205.9117889404297,
"targetY": 130.7109375,
"t": 133006689.4000001,
"item": "default-K_B"
}
],
"stats": {
"angle": 1.574224633581177,
"cardinal": "e",
"netDistance": 12.911864818784546,
"duration": 108.5,
"sampleCount": 7,
"rawDistance": 13.508359026548284
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:609"
]
},
{
"gestureSetId": "default",
"matchedId": "flick-reset-end",
"linkType": "complete",
"item": "default-K_B",
"sources": [],
"allSourceIds": [
"touch:609"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_I",
"sources": [
{
"identifier": "touch:610",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 253.33334350585938,
"targetY": 24.333335876464844,
"t": 133006806.60000014,
"item": "default-K_I"
},
{
"targetX": 253.2008514404297,
"targetY": 24.333335876464844,
"t": 133006822.9000001,
"item": "default-K_I"
},
{
"targetX": 253.33334350585938,
"targetY": 24.333335876464844,
"t": 133006831.5,
"item": "default-K_I"
},
{
"targetX": 248.05014038085938,
"targetY": 32.260093688964844,
"t": 133006873.29999995,
"item": "default-K_U"
},
{
"targetX": 248.05014038085938,
"targetY": 32.260093688964844,
"t": 133006873.79999995,
"item": "default-K_U"
},
{
"targetX": 247.4215545654297,
"targetY": 32.333335876464844,
"t": 133006882.10000014,
"item": "default-K_U"
},
{
"targetX": 247.33334350585938,
"targetY": 32.333335876464844,
"t": 133006888,
"item": "default-K_U"
}
],
"wasCancelled": false,
"stats": {
"angle": 3.7850937623830774,
"cardinal": "sw",
"netDistance": 10,
"duration": 81.39999985694885,
"sampleCount": 7,
"rawDistance": 10.512088716068373
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:610"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_T",
"sources": [
{
"identifier": "touch:611",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 159,
"targetY": 36,
"t": 133006948.60000014,
"item": "default-K_T"
},
{
"targetX": 158.9557342529297,
"targetY": 36,
"t": 133006968.9000001,
"item": "default-K_T"
},
{
"targetX": 159,
"targetY": 36,
"t": 133006973.10000014,
"item": "default-K_T"
},
{
"targetX": 158.6666717529297,
"targetY": 36.333335876464844,
"t": 133007024.29999995,
"item": "default-K_T"
},
{
"targetX": 151.6666717529297,
"targetY": 39.95573425292969,
"t": 133007040.70000005,
"item": "default-K_T"
},
{
"targetX": 151.6666717529297,
"targetY": 40,
"t": 133007042.60000014,
"item": "default-K_T"
}
],
"wasCancelled": false,
"stats": {
"angle": 4.213041967135186,
"cardinal": "sw",
"netDistance": 8.353304925553678,
"duration": 94,
"sampleCount": 6,
"rawDistance": 8.48593644742464
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:611"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_SPACE",
"sources": [
{
"identifier": "touch:612",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 233.33334350585938,
"targetY": 163,
"t": 133007049,
"item": "default-K_SPACE"
},
{
"targetX": 233.33334350585938,
"targetY": 163,
"t": 133007077.4000001,
"item": "default-K_SPACE"
},
{
"targetX": 233.8740234375,
"targetY": 153.26498413085938,
"t": 133007108.4000001,
"item": "default-K_SPACE"
},
{
"targetX": 234,
"targetY": 151,
"t": 133007125,
"item": "default-K_SPACE"
}
],
"wasCancelled": false,
"stats": {
"angle": 0.05549766014351466,
"cardinal": "n",
"netDistance": 12.018503687280704,
"duration": 76,
"sampleCount": 4,
"rawDistance": 12.01850369305674
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:612"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "longpress",
"linkType": "chain",
"sources": [
{
"identifier": "touch:613",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 256.3333435058594,
"targetY": 130,
"t": 133007215.79999995,
"item": "default-K_M"
},
{
"targetX": 257.3232421875,
"targetY": 121.41342163085938,
"t": 133007291.10000014,
"item": "default-K_M"
},
{
"targetX": 257.9934997558594,
"targetY": 111.76335144042969,
"t": 133007298,
"item": "default-K_M"
},
{
"targetX": 257.9934997558594,
"targetY": 111.76335144042969,
"t": 133007298.70000005,
"item": "default-K_M"
}
],
"stats": {
"angle": 0.09078383549729901,
"cardinal": "n",
"netDistance": 18.312058034521733,
"duration": 82.90000009536743,
"sampleCount": 4,
"rawDistance": 18.316768945725826
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:613"
]
},
{
"gestureSetId": "none",
"matchedId": "subkey-select",
"linkType": "complete",
"item": "popup-default-U_1E41",
"sources": [
{
"identifier": "touch:613",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 44.333343505859375,
"targetY": 84,
"t": 133007215.79999995,
"item": "default-K_M"
},
{
"targetX": 45.3232421875,
"targetY": 75.41342163085938,
"t": 133007291.10000014,
"item": "default-K_M"
},
{
"targetX": 45.993499755859375,
"targetY": 65.76335144042969,
"t": 133007298,
"item": "default-K_M"
},
{
"targetX": 45.993499755859375,
"targetY": 65.76335144042969,
"t": 133007298.70000005,
"item": "default-K_M"
},
{
"targetX": 46,
"targetY": 65.08822631835938,
"t": 133007309.70000005,
"item": "popup-default-U_1E41"
},
{
"targetX": 46,
"targetY": 65,
"t": 133007320,
"item": "popup-default-U_1E41"
}
],
"wasCancelled": false,
"stats": {
"angle": 0.08749480949450114,
"cardinal": "n",
"netDistance": 19.0729584456492,
"duration": 104.20000004768372,
"sampleCount": 6,
"rawDistance": 19.080151678277012
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:613"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_U",
"sources": [
{
"identifier": "touch:614",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 236.33334350585938,
"targetY": 47.333335876464844,
"t": 133007409.5,
"item": "default-K_U"
},
{
"targetX": 236.2890625,
"targetY": 47.333335876464844,
"t": 133007417,
"item": "default-K_U"
},
{
"targetX": 236.33334350585938,
"targetY": 47.333335876464844,
"t": 133007423.60000014,
"item": "default-K_U"
}
],
"wasCancelled": false,
"stats": {
"netDistance": 0,
"duration": 14.100000143051147,
"sampleCount": 3,
"rawDistance": 0.08856201171875
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:614"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_S",
"sources": [
{
"identifier": "touch:615",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 75.66667175292969,
"targetY": 72,
"t": 133007497.79999995,
"item": "default-K_S"
},
{
"targetX": 75.66667175292969,
"targetY": 72,
"t": 133007507.79999995,
"item": "default-K_S"
},
{
"targetX": 75.66667175292969,
"targetY": 72,
"t": 133007509.70000005,
"item": "default-K_S"
},
{
"targetX": 75.66667175292969,
"targetY": 72,
"t": 133007548.70000005,
"item": "default-K_S"
}
],
"wasCancelled": false,
"stats": {
"netDistance": 0,
"duration": 50.90000009536743,
"sampleCount": 4,
"rawDistance": 0
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:615"
]
}
],
[
{
"gestureSetId": "default",
"matchedId": "initial-tap",
"linkType": "chain",
"item": "default-K_T",
"sources": [
{
"identifier": "touch:616",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 157,
"targetY": 42,
"t": 133007675,
"item": "default-K_T"
},
{
"targetX": 156.9557342529297,
"targetY": 42,
"t": 133007696.29999995,
"item": "default-K_T"
},
{
"targetX": 157,
"targetY": 42,
"t": 133007708.10000014,
"item": "default-K_T"
}
],
"wasCancelled": false,
"stats": {
"netDistance": 0,
"duration": 33.10000014305115,
"sampleCount": 3,
"rawDistance": 0.088531494140625
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:616"
]
}
]
]
Interesting tidbit 1:
{
"gestureSetId": "default",
"matchedId": "flick-start",
"linkType": "chain",
"sources": [
{
"identifier": "touch:527",
"isFromTouch": true,
"path": {
"coords": [/* ... */],
"stats": {
"angle": 3.71455936826273,
"cardinal": "sw",
"netDistance": 12.297242980563237,
"duration": 75.70000004768372,
"sampleCount": 5,
"rawDistance": 12.435837605769263
}
},
"stateToken": "default"
}
]
}
That is a surprisingly low 'netDistance' for the flick-start to trigger. I'd ask if it was intended, but the rest of that gesture's lifetime indicates yes - you did go all the way to flick-end.
I'd ask if it was intended, but the rest of that gesture's lifetime indicates yes - you did go all the way to flick-end.
I did no intentional flicks in either video
{
"gestureSetId": "default",
"matchedId": "longpress",
"linkType": "chain",
"sources": [
{
"identifier": "touch:613",
"isFromTouch": true,
"path": {
"coords": [
{
"targetX": 256.3333435058594,
"targetY": 130,
"t": 133007215.79999995,
"item": "default-K_M"
},
{
"targetX": 257.3232421875,
"targetY": 121.41342163085938,
"t": 133007291.10000014,
"item": "default-K_M"
},
{
"targetX": 257.9934997558594,
"targetY": 111.76335144042969,
"t": 133007298,
"item": "default-K_M"
},
{
"targetX": 257.9934997558594,
"targetY": 111.76335144042969,
"t": 133007298.70000005,
"item": "default-K_M"
}
],
"stats": {
"angle": 0.09078383549729901,
"cardinal": "n",
"netDistance": 18.312058034521733,
"duration": 82.90000009536743,
"sampleCount": 4,
"rawDistance": 18.316768945725826
}
},
"stateToken": "default"
}
],
"allSourceIds": [
"touch:613"
]
}
That's 18 pixels of movement that it recorded, all within the span of 83ms. If the second tap weren't there, I'd have a reason to question if the coordinate-remapper (for layer changes, etc) did something odd, but it is present. (You can see remapper effects in its following "subkey-select"
section - the original coordinates are included, but remapped based on the subkey display area.)
I'd ask if it was intended, but the rest of that gesture's lifetime indicates yes - you did go all the way to flick-end.
I did no intentional flicks in either video
Oh. Guess I skimmed to fast; you're right, as it does end with flick-reset-end
. That simply outputs the base key, and if you never got far, you probably wouldn't even have noticed any flick-preview scrolling.
Added a note to the first video:
Highlight in this video is at 0:11, where I intend to type a plain
r
but instead getȓ
.
And second:
Highlight is at 0:15 with
m
intended.
Added a note to the first video:
Highlight in this video is at 0:11, where I intend to type a plain
r
but instead getȓ
.And second:
Highlight is at 0:15 with
m
intended.
The initial touch location of the 'r', as indicated by the opacity of the touch-indicator on the key.
The gesture-engine notes 'yep, it's been touched' here after a delay of two or three frames and finally displays the key-preview here.
Two frames later, the subkey menu displays:
One frame later, the subkey is activated and output... with the subkey menu still showing for a moment. (Its cancellation is triggered by recognition of the end of the gesture, which is processed after the last gesture-component match.)
Two frames later, the subkey menu disappears.
One notable thing from that sequence of images - less than half of the 'flick' distance was actually north-directed - a substantial component of the motion was horizontal. That is something that could be cleaned up.
A focused 'start' and 'end' comparison, excerpted from the screenshots above:
I'd say that's about a 30-degree angle, direction between north-east and east-north-east.
From the path-model as it is:
'n', 'nw', and 'ne' - approx 67.5 degrees on each side of due N in total.
30 degrees from horizontal would fall within that.
Added a note to the first video:
Highlight in this video is at 0:11, where I intend to type a plain
r
but instead getȓ
.And second:
Highlight is at 0:15 with
m
intended.
And that would be the one I extracted above. I only later realized you had two different recordings... but there are others with clearer stats for the 'unintended' cases. Sadly, the 'r' I focused on above was kicked out of history before you stopped (I kept it to the most recent 10), but the first sequence has a good one:
"stats": {
"angle": 5.28582940138711,
"cardinal": "nw",
"netDistance": 19.04673395825433,
"duration": 123.19999980926514,
"sampleCount": 5,
"rawDistance": 19.047517845309315
}
That angle corresponds to 302.9 degrees - or -57.1 degrees, a generally 'nw' direction. Its purely-vertical distance is only 54.3% of its netDistance... which would have put the vertical distance travelled at only 10.36 px. That'd be well within the threshold if I had it properly checking only the vertical component.