From 812ee9538deef8518163456f0481f1e3e2d095c0 Mon Sep 17 00:00:00 2001 From: Rene Haas Date: Fri, 5 Apr 2024 11:47:02 +0200 Subject: [PATCH] fix focus bug --- .../src/setups/structureSetup/structureSetup.elements.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/overlayscrollbars/src/setups/structureSetup/structureSetup.elements.ts b/packages/overlayscrollbars/src/setups/structureSetup/structureSetup.elements.ts index 17f0ff43..6f042e65 100644 --- a/packages/overlayscrollbars/src/setups/structureSetup/structureSetup.elements.ts +++ b/packages/overlayscrollbars/src/setups/structureSetup/structureSetup.elements.ts @@ -244,11 +244,6 @@ export const createStructureSetupElements = ( push(destroyFns, [ undoInitWrapUndwrapFocus, - !viewportIsTarget && - (() => - ogTabindex - ? setAttrs(_viewport, tabIndexStr, ogTabindex) - : removeAttrs(_viewport, tabIndexStr)), () => { const destroyActiveElm = getFocusedElement(); const undoDestroyWrapUndwrapFocus = prepareWrapUnwrapFocus(destroyActiveElm); @@ -259,6 +254,9 @@ export const createStructureSetupElements = ( dataAttributeHostOverflowY, dataAttributeViewport, ]); + ogTabindex + ? setAttrs(_viewport, tabIndexStr, ogTabindex) + : removeAttrs(_viewport, tabIndexStr); elementIsGenerated(_content) && unwrap(_content); elementIsGenerated(_viewport) && unwrap(_viewport); @@ -273,6 +271,7 @@ export const createStructureSetupElements = ( push(destroyFns, bind(removeAttrs, _viewport, dataAttributeViewport)); } + // focus viewport if previously focused element was target, otherwise focus previously focused element focusElm( !viewportIsTarget && docWnd.top === docWnd && initActiveElm === targetElement ? _viewport