diff --git a/src/App.vue b/src/App.vue
index abd3b205..b89d8d90 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -14,6 +14,7 @@
@toggle-theme="toggleTheme"
@toggle-sidebar="isSidebarOpen = !isSidebarOpen"
@spk-link="handleSpkLink"
+ :is-maximized="isMaximized"
/>
@@ -545,6 +546,11 @@ const isDarkTheme = computed(() => {
return themeMode.value === "dark";
});
+const isMaximized = ref(false)
+const updateIsMaximizedState = async () => {
+ const state = await window.windowControls.state()
+ isMaximized.value = state === 'maximized'
+}
const isSubmitterView = ref(false);
// 启动参数 --no-apm => 仅 Spark;--no-spark => 仅 APM;由主进程 IPC 提供
@@ -922,6 +928,8 @@ const handleWindowResize = () => {
saveBoundsTimer = window.setTimeout(() => {
void window.ipcRenderer.invoke("save-window-bounds");
}, 400);
+
+ updateIsMaximizedState()
};
// —— 以下为可复用的事件/IPC 监听处理器(命名函数,便于 onUnmounted 统一移除)——
diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts
index e4409466..09878e28 100644
--- a/src/vite-env.d.ts
+++ b/src/vite-env.d.ts
@@ -39,6 +39,7 @@ interface WindowControlBridge {
minimize: () => void;
toggleMaximize: () => void;
close: () => void;
+ state: () => Promise<| 'normal' | 'maximized' | 'minimized'>
}
// IPC channel type definitions