diff --git a/CHANGELOG.md b/CHANGELOG.md index da20853ce9..52f4fe0694 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 +- Fix: デッキでリンクをダブルクリックすると、ウィンドウが2枚開いてしまう問題を修正 ### Server - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました diff --git a/packages/frontend/src/ui/deck.vue b/packages/frontend/src/ui/deck.vue index e2ee4b658e..704411c930 100644 --- a/packages/frontend/src/ui/deck.vue +++ b/packages/frontend/src/ui/deck.vue @@ -129,11 +129,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;