HeliBoard
HeliBoard copied to clipboard
!autoColumnOrder! doesn't work with specific characters
Describe the bug For clarity, import my .json layout into your English language ⬇
.json
[
[
{ "label": "select_all", "width": -1, "type": "function", "popup": { "main": { "label": "select_word" } } },
{ "label": "copy", "width": -1, "type": "function", "popup": { "main": { "label": "cut" } } },
{ "label": "paste", "width": -1, "type": "function", "popup": { "main": { "label": "clipboard" } } },
{ "label": "full_left", "width": -1, "type": "function", "popup": { "main": { "label": "page_start" } } },
{ "label": "full_right", "width": -1, "type": "function", "popup": { "main": { "label": "page_end" } } },
{ "label": "word_left", "width": -1, "type": "function" },
{ "label": "word_right", "width": -1, "type": "function" },
{ "label": "undo", "width": -1, "type": "function", "popup": { "main": { "label": "redo" } } }
],
[
{ "label": "1", "type": "normal", "popup": { "main": { "label": "@" },
"relevant": [
{ "label": "!autoColumnOrder!3" },
{ "label": "©" },
{ "label": "®" },
{ "label": "½" },
{ "label": "⅓" },
{ "label": "¼" },
{ "label": "¹" } ] } },
{ "label": "2", "type": "normal", "popup": { "main": { "label": "$" },
"relevant": [
{ "label": "!autoColumnOrder!4" },
{ "label": "₽" },
{ "label": "€" },
{ "label": "¢" },
{ "label": "⅔" },
{ "label": "²" } ] } },
{ "label": "3", "type": "normal", "popup": { "main": { "label": "%" },
"relevant": [
{ "label": "!autoColumnOrder!9" },
{ "label": "¾" },
{ "label": "³" } ] } },
{ "label": "4", "type": "normal", "popup": { "main": { "label": "°" },
"relevant": [
{ "label": "!autoColumnOrder!9" },
{ "label": "⁴" } ] } },
{ "label": "5", "type": "normal", "popup": { "main": { "label": "&" },
"relevant": [
{ "label": "!autoColumnOrder!9" },
{ "label": "⁵" } ] } },
{ "label": "6", "type": "normal", "popup": { "main": { "label": "™" },
"relevant": [
{ "label": "!autoColumnOrder!9" },
{ "label": "⁶" } ] } },
{ "label": "7", "type": "normal", "popup": { "main": { "label": "#" },
"relevant": [
{ "label": "!autoColumnOrder!9" },
{ "label": "⁷" } ] } },
{ "label": "8", "type": "normal", "popup": { "main": { "label": "№" },
"relevant": [
{ "label": "!autoColumnOrder!9" },
{ "label": "⁸" } ] } },
{ "label": "9", "type": "normal", "popup": { "main": { "label": "⁹" } } },
{ "label": "0", "type": "normal", "popup": { "main": { "label": "⁰" },
"relevant": [
{ "label": "!autoColumnOrder!9" },
{ "label": "Ø" },
{ "label": "∅" } ] } }
],
[
{ "label": "?", "width": -1, "type": "function", "popup": { "main": { "label": "~" },
"relevant": [
{ "label": "!autoColumnOrder!9" },
{ "label": "±" },
{ "label": "≈" },
{ "label": "!" } ] } },
{ "label": "-", "width": -1, "type": "function", "popup": { "main": { "label": "+" },
"relevant": [
{ "label": "!autoColumnOrder!4" },
{ "label": "*" },
{ "label": "=" },
{ "label": "≠" },
{ "label": "∞" },
{ "label": "×" },
{ "label": "÷" },
{ "label": "^" },
{ "label": "–" },
{ "label": "—" } ] } },
{ "label": "/", "width": -1, "type": "function", "popup": { "main": { "label": "\\" },
"relevant": [
{ "label": "!autoColumnOrder!9" },
{ "label": "|" } ] } },
{ "label": ">", "width": -1, "type": "function", "popup": { "main": { "label": "⬇" },
"relevant": [
{ "label": "!autoColumnOrder!4" },
{ "label": "➡" },
{ "label": "⬅" },
{ "label": "⬆" },
{ "label": "↓" },
{ "label": "→" },
{ "label": "←" },
{ "label": "↑" },
{ "label": "↔" },
{ "label": "<" } ] } },
{ "label": "\"", "width": -1, "type": "function", "popup": { "main": { "label": "«" },
"relevant": [
{ "label": "!autoColumnOrder!2" },
{ "label": "»" },
{ "label": "“" },
{ "label": "”" } ] } },
{ "label": "'", "width": -1, "type": "function", "popup": { "main": { "label": "`" },
"relevant": [
{ "label": "!autoColumnOrder!2" },
{ "label": "́" },
{ "label": "‘" },
{ "label": "’" },
{ "label": "ʼ" } ] } },
{ "label": "(", "width": -1, "type": "function", "popup": { "main": { "label": "[" },
"relevant": [
{ "label": "!autoColumnOrder!2" },
{ "label": "{" },
{ "label": "‹" },
{ "label": "«" } ] } },
{ "label": ")", "width": -1, "type": "function", "popup": { "main": { "label": "]" },
"relevant": [
{ "label": "!autoColumnOrder!2" },
{ "label": "}" },
{ "label": "›" },
{ "label": "»" } ] } },
{ "label": ".", "width": -1, "type": "function", "popup": { "main": { "label": ":" },
"relevant": [
{ "label": "!autoColumnOrder!2" },
{ "label": "_" },
{ "label": "…" },
{ "label": "⋮" },
{ "label": "•" } ] } },
{ "label": ",", "width": -1, "type": "function", "popup": { "main": { "label": ";" } } }
],
[
{ "label": "q" },
{ "label": "w" },
{ "label": "e" },
{ "label": "r" },
{ "label": "t" },
{ "label": "y" },
{ "label": "u" },
{ "label": "i" },
{ "label": "o" },
{ "label": "p" }
],
[
{ "label": "a" },
{ "label": "s" },
{ "label": "d" },
{ "label": "f" },
{ "label": "g" },
{ "label": "h" },
{ "label": "j" },
{ "label": "k" },
{ "label": "l" }
],
[
{ "label": "z" },
{ "label": "x" },
{ "label": "c" },
{ "label": "v" },
{ "label": "b" },
{ "label": "n" },
{ "label": "m" }
]
]
To Reproduce
Do a long tap on, for example, a period . or quotation marks " and you'll see that the pop-up keys are correctly displayed in 2 columns, as per the !autoColumnOrder!2 parameter. Now, long-tap on either of the parentheses: ( or ) and you'll see that the pop-up keys ignore the !autoColumnOrder!2 parameter and are displayed in one row.
Also, when I long-tap on ( ), the square brackets [ ] should be selected/focused first, since they are in the first place in these keys' pop-up config. But instead, curvy brackets { } are selected/focused first.
App version 2.3
The issue is caused here, where fixedColumnOrder is added to retain the popup layout of previous versions.
(somewhat similar, but not relevant in your case: use of addFixedColumnOrder and adjustAutoColumnOrder in LocaleKeyboardInfos)