Release v1.1.0 — always open to main window

Post popoverWillOpen notification on show; ContentView resets showSettings
on receive so reopening always lands on the main window, not Settings.
This commit is contained in:
superdooper86
2026-05-07 18:02:04 +02:00
parent e41d3d0c0f
commit 3e99e1417e
5 changed files with 11 additions and 5 deletions
+2
View File
@@ -199,6 +199,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
@objc func showPopover() {
guard let button = statusItem?.button, let popover else { return }
if !popover.isShown {
NotificationCenter.default.post(name: .popoverWillOpen, object: nil)
popover.show(relativeTo: button.bounds, of: button, preferredEdge: .minY)
NSApp.activate(ignoringOtherApps: true)
}
@@ -209,6 +210,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
if popover.isShown {
popover.performClose(nil)
} else {
NotificationCenter.default.post(name: .popoverWillOpen, object: nil)
popover.show(relativeTo: button.bounds, of: button, preferredEdge: .minY)
NSApp.activate(ignoringOtherApps: true)
}
+3
View File
@@ -94,6 +94,9 @@ struct ContentView: View {
}
.frame(width: 480)
.animation(.easeInOut(duration: 0.2), value: showSettings)
.onReceive(NotificationCenter.default.publisher(for: .popoverWillOpen)) { _ in
showSettings = false
}
.onReceive(NotificationCenter.default.publisher(for: .openUpdateSheet)) { _ in
showSettings = false
showUpdateSheet = true
+2 -2
View File
@@ -15,9 +15,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0.9</string>
<string>1.1.0</string>
<key>CFBundleVersion</key>
<string>28</string>
<string>29</string>
<key>LSMinimumSystemVersion</key>
<string>13.0</string>
<key>LSUIElement</key>
+1
View File
@@ -307,6 +307,7 @@ extension Notification.Name {
static let refreshIntervalChanged = Notification.Name("refreshIntervalChanged")
static let closePopover = Notification.Name("closePopover")
static let showPopover = Notification.Name("showPopover")
static let popoverWillOpen = Notification.Name("popoverWillOpen")
static let updateDetected = Notification.Name("updateDetected")
static let limitWarning = Notification.Name("limitWarning")
static let limitReset = Notification.Name("limitReset")