diff --git a/electron/main.ts b/electron/main.ts index 2ce7263..30a1316 100644 --- a/electron/main.ts +++ b/electron/main.ts @@ -497,7 +497,18 @@ ipcMain.handle('transfer-tab-data', async (_event, windowId: number, tabData: an if (!win) { return { success: false, error: 'Window not found' }; } + + await new Promise((resolve) => { + if (win.webContents.isLoading()) { + win.webContents.once('did-finish-load', () => resolve()); + } else { + resolve(); + } + setTimeout(resolve, 2000); + }); + win.webContents.send('tab-data-received', tabData); + log.info('[PopOut] Tab data sent to window:', windowId); return { success: true }; } catch (error: any) { log.error('[PopOut] Failed to transfer tab data:', error); diff --git a/src/pages/NoteBrowser.tsx b/src/pages/NoteBrowser.tsx index eb32a68..f00b8aa 100644 --- a/src/pages/NoteBrowser.tsx +++ b/src/pages/NoteBrowser.tsx @@ -135,9 +135,7 @@ export const NoteBrowser = () => { const result = await window.electronAPI?.createWindow({ route, title: file.name }) if (result?.success && result.windowId) { - setTimeout(() => { - window.electronAPI?.transferTabData(result.windowId!, tabData) - }, 500) + await window.electronAPI?.transferTabData(result.windowId!, tabData) } closeFile(file)