diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index c135d7f..24e4ec0 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -6,6 +6,12 @@ "main" ], "permissions": [ - "core:default" + "core:default", + "core:window:default", + "core:window:allow-close", + "core:window:allow-minimize", + "core:window:allow-start-dragging", + "core:window:allow-toggle-maximize", + "core:window:allow-internal-toggle-maximize" ] } diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 1925874..14ddca7 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -20,7 +20,6 @@ "resizable": true, "fullscreen": false, "decorations": false, - "titleBarStyle": "Overlay", "transparent": false, "center": true } diff --git a/src/components/TitleBar.tsx b/src/components/TitleBar.tsx index a88c557..c7f11ef 100644 --- a/src/components/TitleBar.tsx +++ b/src/components/TitleBar.tsx @@ -55,13 +55,10 @@ const TitleBar: React.FC = () => { const handleMaximize = async () => { try { const window = getCurrentWindow() - if (isMaximized) { - await window.unmaximize() - setIsMaximized(false) - } else { - await window.maximize() - setIsMaximized(true) - } + await window.toggleMaximize() + // Update state after toggle + const maximized = await window.isMaximized() + setIsMaximized(maximized) } catch (error) { console.error('Failed to toggle maximize window:', error) } @@ -76,10 +73,30 @@ const TitleBar: React.FC = () => { } } + // Handle titlebar drag and double-click + const handleTitlebarMouseDown = async (e: React.MouseEvent) => { + if (e.buttons === 1) { // Primary (left) button + try { + const window = getCurrentWindow() + if (e.detail === 2) { + // Double click - toggle maximize + await window.toggleMaximize() + const maximized = await window.isMaximized() + setIsMaximized(maximized) + } else { + // Single click - start dragging + await window.startDragging() + } + } catch (error) { + console.error('Failed to handle titlebar interaction:', error) + } + } + } + return ( -