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/AppGridItem.swift | 43 +++++++++++++++++++++++++++++--------------
1 files changed, 29 insertions(+), 14 deletions(-)
diff --git a/Apptag/AppGridItem.swift b/Apptag/AppGridItem.swift
index 5cda31b..746d384 100644
--- a/Apptag/AppGridItem.swift
+++ b/Apptag/AppGridItem.swift
@@ -10,13 +10,14 @@
var sourceTag: String? = nil
var dragModeActive: Bool = false
var onDragModeChange: ((Bool) -> Void)? = nil
- var onBubbleHover: ((AppInfo, CGRect, Bool) -> Void)? = nil
+ var onBubbleHover: ((AppInfo, CGRect, AppBubbleHoverEvent) -> Void)? = nil
var onEditNote: ((AppInfo, CGRect) -> Void)? = nil
+ var bubbleDisabled: Bool = false
var itemID: String
+ var dragResetToken: Int = 0
@Binding var hoveredAppItemID: String?
let onSelect: () -> Void
- @State private var wiggle = false
@State private var interactionFrame: CGRect = .zero
@AppStorage("showUncommonAppBubbles") private var showUncommonAppBubbles = AppDefaults.showUncommonAppBubbles
@@ -72,13 +73,17 @@
.background(
AppGridItemHoverTracker { hovering, frame in
interactionFrame = frame
+ if bubbleDisabled || dragModeActive {
+ setHoverState(false)
+ onBubbleHover?(app, frame, .exited)
+ return
+ }
if hovering {
setHoverState(true)
- guard shouldShowAppBubble else { return }
- onBubbleHover?(app, frame, hovering)
+ onBubbleHover?(app, frame, .entered(canShowBubble: shouldShowAppBubble))
} else if isHovered {
setHoverState(false)
- onBubbleHover?(app, frame, hovering)
+ onBubbleHover?(app, frame, .exited)
} else {
setHoverState(false)
}
@@ -90,20 +95,25 @@
onEditNote?(app, interactionFrame)
}
}
- .rotationEffect(.degrees(dragModeActive ? (wiggle ? 2.0 : -2.0) : 0))
- .animation(
- dragModeActive
- ? .easeInOut(duration: 0.12).repeatForever(autoreverses: true)
- : .default,
- value: wiggle
- )
+ .opacity(dragModeActive ? 0.92 : 1)
+ .animation(.easeOut(duration: 0.08), value: dragModeActive)
+ .id("\(itemID)|reset-\(dragResetToken)")
.onChange(of: dragModeActive) { _, active in
- wiggle = active
+ if active {
+ setHoverState(false)
+ onBubbleHover?(app, interactionFrame, .exited)
+ }
+ }
+ .onChange(of: bubbleDisabled) { _, disabled in
+ if disabled {
+ setHoverState(false)
+ onBubbleHover?(app, interactionFrame, .exited)
+ }
}
.onDisappear {
if hoveredAppItemID == itemID {
hoveredAppItemID = nil
- onBubbleHover?(app, interactionFrame, false)
+ onBubbleHover?(app, interactionFrame, .exited)
}
}
}
@@ -127,6 +137,11 @@
}
}
+enum AppBubbleHoverEvent {
+ case entered(canShowBubble: Bool)
+ case exited
+}
+
private struct AppGridItemHoverTracker: NSViewRepresentable {
let onHover: (Bool, CGRect) -> Void
--
Gitblit v1.9.3