diff --git a/CHANGELOG.md b/CHANGELOG.md index 1924805849..39f5ef24d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,6 +55,7 @@ - Fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 #15841 - Fix: アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正 #15843 - Fix: タイムラインでノートが重複して表示されることがあるのを修正 +- Fix: デッキでリンクをダブルクリックすると、ウィンドウが2枚開いてしまう問題を修正 ### Server - Enhance: ジョブキューの成功/失敗したジョブも一定数・一定期間保存するようにし、後から問題を調査することを容易に diff --git a/packages/frontend/src/ui/deck.vue b/packages/frontend/src/ui/deck.vue index aff7cdabbf..e860365415 100644 --- a/packages/frontend/src/ui/deck.vue +++ b/packages/frontend/src/ui/deck.vue @@ -123,11 +123,19 @@ const columnComponents = { chat: XChatColumn, }; +// ダブルクリック時には2回クリックされた扱いになるので、2回目抑止するためのタイマー +// これによりウィンドウが2枚開かれることを防ぐ +let routerNavTimer: number | null = null; + mainRouter.navHook = (path, flag): boolean => { if (flag === 'forcePage') return false; - const noMainColumn = !columns.value.some(x => x.type === 'main'); + if (routerNavTimer != null) return true; + const noMainColumn = !columns.some(x => x.type === 'main'); if (prefer.s['deck.navWindow'] || noMainColumn) { os.pageWindow(path); + routerNavTimer = window.setTimeout(() => { + routerNavTimer = null; + }, 300); return true; } return false;