✨ Frameless Window
This commit is contained in:
@@ -17,6 +17,7 @@ type ServiceManager struct {
|
||||
dialogService *DialogService
|
||||
websocketService *WebSocketService
|
||||
httpService *HTTPService
|
||||
trayService *TrayService
|
||||
logger *log.LoggerService
|
||||
}
|
||||
|
||||
@@ -49,6 +50,9 @@ func NewServiceManager() *ServiceManager {
|
||||
// 初始化 HTTP 服务
|
||||
httpService := NewHTTPService(logger, websocketService)
|
||||
|
||||
// 初始化托盘服务
|
||||
trayService := NewTrayService(logger, configService)
|
||||
|
||||
// 设置迁移服务的WebSocket广播
|
||||
migrationService.SetProgressBroadcaster(func(progress MigrationProgress) {
|
||||
websocketService.BroadcastMigrationProgress(progress)
|
||||
@@ -95,6 +99,7 @@ func NewServiceManager() *ServiceManager {
|
||||
dialogService: dialogService,
|
||||
websocketService: websocketService,
|
||||
httpService: httpService,
|
||||
trayService: trayService,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
@@ -108,6 +113,7 @@ func (sm *ServiceManager) GetServices() []application.Service {
|
||||
application.NewService(sm.systemService),
|
||||
application.NewService(sm.hotkeyService),
|
||||
application.NewService(sm.dialogService),
|
||||
application.NewService(sm.trayService),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,3 +136,8 @@ func (sm *ServiceManager) GetLogger() *log.LoggerService {
|
||||
func (sm *ServiceManager) GetConfigService() *ConfigService {
|
||||
return sm.configService
|
||||
}
|
||||
|
||||
// GetTrayService 获取托盘服务实例
|
||||
func (sm *ServiceManager) GetTrayService() *TrayService {
|
||||
return sm.trayService
|
||||
}
|
||||
|
@@ -77,3 +77,10 @@ func (ts *TrayService) ShowWindow() {
|
||||
ts.logger.Info("TrayService: Window shown from system tray")
|
||||
}
|
||||
}
|
||||
|
||||
// MinimizeButtonClicked 处理标题栏最小化按钮点击
|
||||
func (ts *TrayService) MinimizeButtonClicked() {
|
||||
// 最小化按钮总是执行正常最小化到任务栏,不隐藏到托盘
|
||||
ts.mainWindow.Minimise()
|
||||
ts.logger.Info("TrayService: Window minimized to taskbar via titlebar button")
|
||||
}
|
||||
|
Reference in New Issue
Block a user