From 099cd85c325a605e0d6606817174bf99ea88c351 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Tue, 19 May 2026 16:57:08 +0800
Subject: [PATCH] Refresh SmartStart defaults for 7.3.5 build 744

---
 Apptag/ContentView.swift |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/Apptag/ContentView.swift b/Apptag/ContentView.swift
index 0b877a7..b9bb245 100644
--- a/Apptag/ContentView.swift
+++ b/Apptag/ContentView.swift
@@ -227,7 +227,7 @@
             .opacity(dragModeActive ? (isDragging ? 1.0 : 0.62) : 1.0)
             .animation(.easeOut(duration: 0.08), value: isDragging)
             .animation(.easeOut(duration: 0.08), value: dragModeActive)
-            .id(dragResetToken)
+            .id("\(name)|reset-\(dragResetToken)")
             .contentShape(RoundedRectangle(cornerRadius: 7))
             .onTapGesture {
                 action()
@@ -264,7 +264,7 @@
             .opacity(dragModeActive ? (isDragging ? 1.0 : 0.62) : 1.0)
             .animation(.easeOut(duration: 0.08), value: isDragging)
             .animation(.easeOut(duration: 0.08), value: dragModeActive)
-            .id(dragResetToken)
+            .id("\(name)|reset-\(dragResetToken)")
             .contentShape(RoundedRectangle(cornerRadius: 6))
             .onTapGesture {
                 action()
@@ -1873,15 +1873,21 @@
         notchHeight = activeScreen?.safeAreaInsets.top ?? 0
     }
 
-    private func handleBubbleHover(app: AppInfo, frame: CGRect, hovering: Bool) {
+    private func handleBubbleHover(app: AppInfo, frame: CGRect, event: AppBubbleHoverEvent) {
         guard !appBubbleDisabled else {
             clearAppBubbleState()
             return
         }
         guard editingBubble == nil else { return }
-        if hovering {
-            hoveredBubble = AppBubbleContext(app: app, frame: frame)
-        } else if hoveredBubble?.app.path == app.path {
+        switch event {
+        case .entered(let canShowBubble):
+            if canShowBubble {
+                hoveredBubble = AppBubbleContext(app: app, frame: frame)
+            } else {
+                hoveredBubble = nil
+            }
+        case .exited:
+            guard hoveredBubble?.app.path == app.path else { return }
             hoveredBubble = nil
         }
     }

--
Gitblit v1.9.3