diff --git a/main.js b/main.js index 52dce35..be421d0 100644 --- a/main.js +++ b/main.js @@ -84,9 +84,9 @@ function stopWatching() { } } -async function showOpenDialog(multi) { +async function showOpenDialog() { const result = await dialog.showOpenDialog(mainWindow, { - properties: multi ? ['openFile', 'multiSelections'] : ['openFile'], + properties: ['openFile'], filters: [ { name: 'Markdown 文件', extensions: ['md', 'markdown', 'txt'] }, { name: '所有文件', extensions: ['*'] } @@ -131,7 +131,7 @@ function switchActiveFile(filePath) { // Open single file via dialog ipcMain.handle('dialog:openFile', async () => { try { - const files = await showOpenDialog(false); + const files = await showOpenDialog(); if (files && files.length > 0) { const content = readFileContent(files[0]); activeFilePath = files[0]; @@ -145,27 +145,6 @@ ipcMain.handle('dialog:openFile', async () => { } }); -// Open multiple files via dialog -ipcMain.handle('dialog:openFiles', async () => { - try { - const files = await showOpenDialog(true); - if (files && files.length > 0) { - const results = []; - for (const fp of files) { - try { - const content = readFileContent(fp); - results.push({ filePath: fp, content }); - } catch (err) { - results.push({ filePath: fp, error: err.message }); - } - } - return results; - } - return null; - } catch (err) { - return { error: err.message }; - } -}); ipcMain.handle('file:read', async (event, filePath) => { try { diff --git a/preload.js b/preload.js index f16d805..8258c3a 100644 --- a/preload.js +++ b/preload.js @@ -3,7 +3,6 @@ const { contextBridge, ipcRenderer } = require('electron'); contextBridge.exposeInMainWorld('electronAPI', { // File operations openFile: () => ipcRenderer.invoke('dialog:openFile'), - openFiles: () => ipcRenderer.invoke('dialog:openFiles'), readFile: (filePath) => ipcRenderer.invoke('file:read', filePath), saveFile: (data) => ipcRenderer.invoke('file:save', data), saveFileAs: (data) => ipcRenderer.invoke('file:saveAs', data), diff --git a/renderer/renderer.js b/renderer/renderer.js index 26739a8..8b59295 100644 --- a/renderer/renderer.js +++ b/renderer/renderer.js @@ -297,7 +297,9 @@ const tab = getActiveTab(); if (tab) { tab.isModified = modified; - renderTabBar(); + // Toggle class directly instead of rebuilding entire tab bar + const tabEl = tabList.querySelector(`.tab-item[data-tab-id="${tab.id}"]`); + if (tabEl) tabEl.classList.toggle('modified', modified); } updateTitle(); } @@ -672,8 +674,7 @@ if (tab) { tab.isModified = true; tab.content = editor.value; - renderTabBar(); - updateTitle(); + setModified(true); } scheduleUpdate(); });