From bd2b87f5c08f0ab92d77bcae9e05301e1f3e4be8 Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Mon, 19 Oct 2020 10:05:31 +0700 Subject: [PATCH 1/4] fix(web): Remove base key from popup keys --- web/source/kmwembedded.ts | 8 +++----- web/source/osk/visualKeyboard.ts | 5 +---- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/web/source/kmwembedded.ts b/web/source/kmwembedded.ts index 3e44a94932..35e0a94713 100644 --- a/web/source/kmwembedded.ts +++ b/web/source/kmwembedded.ts @@ -40,7 +40,7 @@ namespace com.keyman.osk { } }; - // iOS now relies upon native-mode popup key management, so we only implement these hybrid-targetted + // iOS now relies upon native-mode popup key management, so we only implement these hybrid-targeted // methods when embedding in Android. let device = com.keyman.singleton.util.device; @@ -56,10 +56,8 @@ namespace com.keyman.osk { if(key['subKeys'] && (typeof(window['oskCreatePopup']) == 'function')) { var xBase = dom.Utils.getAbsoluteX(key) - dom.Utils.getAbsoluteX(this.kbdDiv) + key.offsetWidth/2, yBase = dom.Utils.getAbsoluteY(key); - - if(util.device.formFactor == 'phone') { - this.prependBaseKey(key); - } + + // No longer prepend base key to subkey array this.popupBaseKey = key; this.popupPending=true; diff --git a/web/source/osk/visualKeyboard.ts b/web/source/osk/visualKeyboard.ts index 8f80edaa17..7706b039d6 100644 --- a/web/source/osk/visualKeyboard.ts +++ b/web/source/osk/visualKeyboard.ts @@ -1509,10 +1509,7 @@ namespace com.keyman.osk { subKeys.id='kmw-popup-keys'; this.popupBaseKey = e; - // Does the popup array include the base key? *** condition for phone only *** - if(device.formFactor == 'phone') { - this.prependBaseKey(e); - } + // No longer prepend base key to popup array // Must set position dynamically, not in CSS var ss=subKeys.style; From aa70d16ad033aa13a5ba0a82715dea19cb068026 Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Mon, 19 Oct 2020 10:20:11 +0700 Subject: [PATCH 2/4] chore(web): Include PR number (1 of 2) Co-authored-by: Marc Durdin --- web/source/kmwembedded.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/source/kmwembedded.ts b/web/source/kmwembedded.ts index 35e0a94713..aa44bfbcfa 100644 --- a/web/source/kmwembedded.ts +++ b/web/source/kmwembedded.ts @@ -57,7 +57,7 @@ namespace com.keyman.osk { var xBase = dom.Utils.getAbsoluteX(key) - dom.Utils.getAbsoluteX(this.kbdDiv) + key.offsetWidth/2, yBase = dom.Utils.getAbsoluteY(key); - // No longer prepend base key to subkey array + // #3718: No longer prepend base key to subkey array this.popupBaseKey = key; this.popupPending=true; From 7bd03f81213424dc821bc29a593439a72c4eeecf Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Mon, 19 Oct 2020 10:20:29 +0700 Subject: [PATCH 3/4] chore(web): Include PR number (2 of 2) Co-authored-by: Marc Durdin --- web/source/osk/visualKeyboard.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/source/osk/visualKeyboard.ts b/web/source/osk/visualKeyboard.ts index 7706b039d6..ed61543a9a 100644 --- a/web/source/osk/visualKeyboard.ts +++ b/web/source/osk/visualKeyboard.ts @@ -1509,7 +1509,7 @@ namespace com.keyman.osk { subKeys.id='kmw-popup-keys'; this.popupBaseKey = e; - // No longer prepend base key to popup array + // #3718: No longer prepend base key to popup array // Must set position dynamically, not in CSS var ss=subKeys.style; @@ -2602,4 +2602,4 @@ namespace com.keyman.osk { return false; }; } -} \ No newline at end of file +} From 94c2f2576c54fb3274de77f3514d516cbd0033d3 Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Mon, 19 Oct 2020 13:07:29 +0700 Subject: [PATCH 4/4] chore(web): Remove prependBaseKey() --- web/source/osk/visualKeyboard.ts | 36 -------------------------------- 1 file changed, 36 deletions(-) diff --git a/web/source/osk/visualKeyboard.ts b/web/source/osk/visualKeyboard.ts index ed61543a9a..7d53f4c9d2 100644 --- a/web/source/osk/visualKeyboard.ts +++ b/web/source/osk/visualKeyboard.ts @@ -1596,43 +1596,7 @@ namespace com.keyman.osk { } } - /** - * Prepend the base key to the touch-hold key array (for phones) - * - * @param {Object} e base key object - */ - prependBaseKey(e: KeyElement) { - // This is a tag we set on the key element during its construction. - let subKeys: OSKKeySpec[] = e['subKeys']; - let keyman = com.keyman.singleton; - if(e && typeof(e.id) != 'undefined') { - //TODO: refactor this, it's pretty messy... - var i, - idx = e.id.split('-'), - baseId = e['keyId'], - layer = e['key'].spec['layer'], - sp = e['key'].spec['sp'], - nextlayer = e['key'].spec['nextlayer']; - - if(typeof subKeys != 'undefined' && subKeys.length > 0 && (subKeys[0].id != baseId || subKeys[0].layer != layer)) { - var eCopy = new OSKKeySpec(baseId, '', undefined, sp, nextlayer); // {'id':baseId,'layer':'','key':undefined}; - if(layer != '') { - eCopy['layer'] = layer; - } - - for(i = 0; i < e.childNodes.length; i++) { - if(keyman.util.hasClass( e.childNodes[i], 'kmw-key-text')) { - break; - } - } - if(i < e.childNodes.length) { - eCopy['text'] = e.childNodes[i].textContent; - } - subKeys.splice(0, 0, eCopy); - } - } - } //#endregion /**