diff --git a/packages/frontend/src/ui/deck.vue b/packages/frontend/src/ui/deck.vue index a1a76a7e7d..756164d57c 100644 --- a/packages/frontend/src/ui/deck.vue +++ b/packages/frontend/src/ui/deck.vue @@ -135,11 +135,19 @@ const columnComponents = { roleTimeline: XRoleTimelineColumn, }; +// ダブルクリック時には2回クリックされた扱いになるので、2回目抑止するためのタイマー +// これによりウィンドウが2枚開かれることを防ぐ +let routerNavTimer: number | null = null; + mainRouter.navHook = (path, flag): boolean => { if (flag === 'forcePage') return false; + if (routerNavTimer != null) return true; const noMainColumn = !deckStore.state.columns.some(x => x.type === 'main'); if (deckStore.state.navWindow || noMainColumn) { os.pageWindow(path); + routerNavTimer = setTimeout(() => { + routerNavTimer = null; + }, 500); return true; } return false;