diff --git a/packages/react/src/hooks/use-dom.ts b/packages/react/src/hooks/use-dom.ts index 8f66ff669..0add23e45 100644 --- a/packages/react/src/hooks/use-dom.ts +++ b/packages/react/src/hooks/use-dom.ts @@ -81,7 +81,7 @@ export function useActive(el: Element | null) { isFocusIn = useFocusIn(el), prevMouseEnter = React.useRef(false); - if (prevMouseEnter.current && !isMouseEnter) return false; + if (prevMouseEnter.current && !isMouseEnter && !isFocusIn) return false; prevMouseEnter.current = isMouseEnter; return isMouseEnter || isFocusIn; diff --git a/packages/vidstack/src/utils/dom.ts b/packages/vidstack/src/utils/dom.ts index 98240a144..eeea80e7d 100644 --- a/packages/vidstack/src/utils/dom.ts +++ b/packages/vidstack/src/utils/dom.ts @@ -369,10 +369,11 @@ export function useActive($el: ReadSignal) { let prevMouseEnter = false; return computed(() => { - const isMouseEnter = $isMouseEnter(); - if (prevMouseEnter && !isMouseEnter) return false; + const isMouseEnter = $isMouseEnter(), + isFocusIn = $isFocusedIn(); + if (prevMouseEnter && !isMouseEnter && !isFocusIn) return false; prevMouseEnter = isMouseEnter; - return isMouseEnter || $isFocusedIn(); + return isMouseEnter || isFocusIn; }); }