Compare commits

..
3 Commits
Author SHA1 Message Date
sudacode 170dbbb74c fix(overlay): treat Hachidori popup host as a lookup target for keys
- Match the Hachidori shadow-root host alongside the Yomitan popup host when routing keyboard events
- Update the keyboard test stub to use HACHIDORI_HOST_SELECTOR
2026-10-04 00:59:04 -07:00
sudacode 37d3f5e03e build(hachidori): bump fork to upstream 9e1dfa3 2026-10-04 00:22:41 -07:00
sudacode 55c751830e build(hachidori): bump fork to upstream 0.2.2 (2a063cd) 2026-10-04 00:04:31 -07:00
3 changed files with 4 additions and 4 deletions

No files matched your search

+2 -2
View File
@@ -5,7 +5,7 @@ import test from 'node:test';
import { createKeyboardHandlers } from './keyboard.js';
import { createRendererState } from '../state.js';
import { YOMITAN_POPUP_HOST_SELECTOR } from '../yomitan-popup.js';
import { HACHIDORI_HOST_SELECTOR } from '../yomitan-popup.js';
import type { CompiledSessionBinding } from '../../types';
import type { MpvInputBindingsSnapshot } from '../../types/session-bindings';
import { DEFAULT_KEYBINDINGS, SPECIAL_COMMANDS } from '../../config/definitions';
@@ -482,7 +482,7 @@ function installKeyboardTestGlobals() {
selector
.split(',')
.map((part) => part.trim())
.includes(YOMITAN_POPUP_HOST_SELECTOR)
.includes(HACHIDORI_HOST_SELECTOR)
? target
: null;
return target;
+1 -1
View File
@@ -83,7 +83,7 @@ export function createKeyboardHandlers(
if (ctx.dom.subtitleContainer.contains(target)) return true;
if (isYomitanPopupIframe(target)) return true;
// Hachidori's popup lives in a shadow root, so its events arrive retargeted to the host.
if (target.closest(YOMITAN_POPUP_HOST_SELECTOR)) return true;
if (target.closest(`${YOMITAN_POPUP_HOST_SELECTOR}, ${HACHIDORI_HOST_SELECTOR}`)) return true;
if (target.closest && target.closest('iframe.yomitan-popup, iframe[id^="yomitan-popup"]'))
return true;
return false;