Refactor desktop window management and tray

This commit is contained in:
problematicconsumer
2023-12-28 23:16:56 +03:30
parent 4345b97d72
commit a3a893d7aa
17 changed files with 334 additions and 253 deletions

View File

@@ -8,17 +8,17 @@ class AppDelegate: FlutterAppDelegate {
return false
}
// window manager restore from dock: https://leanflutter.dev/blog/click-dock-icon-to-restore-after-closing-the-window
override func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
if !flag {
for window in NSApp.windows {
if !window.isVisible {
window.setIsVisible(true)
}
window.makeKeyAndOrderFront(self)
NSApp.activate(ignoringOtherApps: true)
}
}
return true
}
// // window manager restore from dock: https://leanflutter.dev/blog/click-dock-icon-to-restore-after-closing-the-window
// override func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
// if !flag {
// for window in NSApp.windows {
// if !window.isVisible {
// window.setIsVisible(true)
// }
// window.makeKeyAndOrderFront(self)
// NSApp.activate(ignoringOtherApps: true)
// }
// }
// return true
// }
}

View File

@@ -1,5 +1,6 @@
import Cocoa
import FlutterMacOS
import window_manager
class MainFlutterWindow: NSWindow {
override func awakeFromNib() {
@@ -12,4 +13,10 @@ class MainFlutterWindow: NSWindow {
super.awakeFromNib()
}
}
// window manager hidden at launch
override public func order(_ place: NSWindow.OrderingMode, relativeTo otherWin: Int) {
super.order(place, relativeTo: otherWin)
hiddenWindowAtLaunch()
}
}