From b960cb03ac2fb94feb40912dba87cbc5e9fab2d7 Mon Sep 17 00:00:00 2001 From: "Joshua A. Horton" Date: Tue, 5 Dec 2023 09:15:10 +0700 Subject: [PATCH] fix(web): tablet preview positioning --- .../engine/osk/src/input/gestures/browser/tabletPreview.ts | 5 ++++- web/src/test/manual/web/prediction-mtnt/index.html | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/web/src/engine/osk/src/input/gestures/browser/tabletPreview.ts b/web/src/engine/osk/src/input/gestures/browser/tabletPreview.ts index c8f4d7dd92..1da5dd49c5 100644 --- a/web/src/engine/osk/src/input/gestures/browser/tabletPreview.ts +++ b/web/src/engine/osk/src/input/gestures/browser/tabletPreview.ts @@ -54,7 +54,10 @@ export class TabletKeyTip implements KeyTipInterface { // decent null-guard check. if(on && key?.offsetParent) { // May need adjustment for borders if ever enabled for the desktop form-factor target. - const hostRect = this.vkbd.element.getBoundingClientRect(); + + // Note: this.vkbd does not set relative or absolute positioning. Nearest positioned + // ancestor = the OSKView's _Box, accessible as this.vkbd.topContainer. + const hostRect = this.vkbd.topContainer.getBoundingClientRect(); const keyRect = key.getBoundingClientRect(); // Used to apply box-shadow overlay styling when the preview is for a key on a layer not diff --git a/web/src/test/manual/web/prediction-mtnt/index.html b/web/src/test/manual/web/prediction-mtnt/index.html index 3613fe72aa..6935f99efa 100644 --- a/web/src/test/manual/web/prediction-mtnt/index.html +++ b/web/src/test/manual/web/prediction-mtnt/index.html @@ -44,7 +44,9 @@ kmw.addKeyboards({id:'lao_2008_basic',name:'Lao',languages:{id:'lo',name:'Lao'}, filename:'../lao_2008_basic-1.2.js'}); kmw.addKeyboards('sil_euro_latin@en'); kmw.addKeyboards({id:'ye_old_ten_key',name:'Classic 10-key',languages:{id:'en',name:'English'}, - filename:('../keyboards/ye_old_ten_key/build/ye_old_ten_key.js')}) + filename:('../keyboards/ye_old_ten_key/build/ye_old_ten_key.js')}); + kmw.addKeyboards({id:'gesture_prototyping',name:'Gesture prototyping',languages:{id:'en',name:'English'}, + filename:('../keyboards/gesture_prototyping/build/gesture_prototyping.js')}) var pageRef = (window.location.protocol == 'file:') ? window.location.href.substr(0, window.location.href.lastIndexOf('/')+1)