Add window pinning

This commit is contained in:
2025-05-12 19:59:40 +08:00
parent 0710f0c9b0
commit e0b9a376cb
11 changed files with 1183 additions and 138 deletions

View File

@@ -23,6 +23,7 @@ type EditorConfig struct {
TabSize int `json:"tabSize"` // Tab大小
TabType TabType `json:"tabType"` // Tab类型空格或Tab
Language LanguageType `json:"language"` // 界面语言
AlwaysOnTop bool `json:"alwaysOnTop"` // 窗口是否置顶
}
// LanguageType 语言类型定义
@@ -73,6 +74,7 @@ func NewDefaultAppConfig() *AppConfig {
TabSize: 4,
TabType: TabTypeSpaces,
Language: LangZhCN,
AlwaysOnTop: false,
},
Paths: PathsConfig{
ConfigPath: filepath.Join(rootDir, "config", "config.json"),

View File

@@ -2,6 +2,7 @@ package systray
import (
"embed"
"github.com/wailsapp/wails/v3/pkg/events"
"time"
"github.com/wailsapp/wails/v3/pkg/application"
@@ -36,9 +37,18 @@ func SetupSystemTray(app *application.App, mainWindow *application.WebviewWindow
mainWindow.Show()
})
// 将窗口附加到系统托盘
systray.AttachWindow(mainWindow)
// 不再附加窗口到系统托盘,避免失去焦点自动缩小
// systray.AttachWindow(mainWindow)
// 设置窗口防抖时间
systray.WindowDebounce(200 * time.Millisecond)
// 使用关闭前的事件处理
mainWindow.RegisterHook(events.Common.WindowClosing, func(event *application.WindowEvent) {
// 取消默认关闭行为
event.Cancel()
// 隐藏窗口
mainWindow.Hide()
})
}