From 9f15087ff92afad0508a24d8803e8e8775359d09 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Sun, 07 Jun 2026 01:36:12 +0800
Subject: [PATCH] release: add 7.8.15 App Store package
---
Apptag/OverlayWindowController.swift | 24 ++++++++++++++++++++----
1 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/Apptag/OverlayWindowController.swift b/Apptag/OverlayWindowController.swift
index 99ac779..5ca9317 100644
--- a/Apptag/OverlayWindowController.swift
+++ b/Apptag/OverlayWindowController.swift
@@ -130,6 +130,7 @@
initialQuickSearchSource: initialQuickSearchSource
)
generation &+= 1
+ let showGeneration = generation
window = newWindow
dependencies.installOverlayKeyMonitor()
if shouldStageAsAccessory {
@@ -149,10 +150,20 @@
let placementFrame = placement.frame
let finishForegroundClaim: () -> Void = { [weak self, weak newWindow] in
guard let self, let newWindow, self.window === newWindow else { return }
+ guard self.generation == showGeneration, newWindow.isVisible else { return }
self.dependencies.refreshChromeState(!shouldAvoidSpaceSwitch, shouldAvoidSpaceSwitch)
if newWindow.frame != placementFrame {
newWindow.setFrame(placementFrame, display: true)
self.orderFront(newWindow)
+ }
+ for delay in [0.2, 0.5] {
+ DispatchQueue.main.asyncAfter(deadline: .now() + delay) { [weak self, weak newWindow] in
+ guard let self, let newWindow, self.window === newWindow else { return }
+ guard self.generation == showGeneration, newWindow.isVisible else { return }
+ guard newWindow.frame != placementFrame else { return }
+ newWindow.setFrame(placementFrame, display: true)
+ self.orderFront(newWindow)
+ }
}
if let settingsWindow = self.dependencies.settingsWindow(), settingsWindow.isVisible {
self.dependencies.prepareSettingsWindow(settingsWindow)
@@ -174,15 +185,20 @@
if let settingsWindow = dependencies.settingsWindow(), settingsWindow.parent == window {
dependencies.detachSettingsWindow(settingsWindow)
}
- window?.orderOut(nil)
+ let windowToHide = window
+ windowToHide?.ignoresMouseEvents = true
+ windowToHide?.alphaValue = 0
+ windowToHide?.orderOut(nil)
dependencies.removeOverlayKeyMonitor()
dependencies.removeQuickSearchMouseMonitor()
+ windowToHide?.contentView = nil
+ windowToHide?.close()
+ if window === windowToHide {
+ window = nil
+ }
avoidsSpaceSwitch = false
dependencies.refreshChromeState(false, false)
dependencies.onDidHide()
- if discardWindow {
- window = nil
- }
}
func screenUnderMouse() -> NSScreen? {
--
Gitblit v1.9.3