From 8478c55e513bbbb4b1676d1d9207f7feb2509465 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Fri, 22 May 2026 00:30:57 +0800
Subject: [PATCH] Freeze 7.6.0 release candidate and move docs out of repo

---
 Apptag/TagGroupView.swift |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/Apptag/TagGroupView.swift b/Apptag/TagGroupView.swift
index 249db2d..d576054 100644
--- a/Apptag/TagGroupView.swift
+++ b/Apptag/TagGroupView.swift
@@ -11,6 +11,11 @@
     var showNames: Bool = true
     var dragModeActive: Bool = false
     var onDragModeChange: ((Bool) -> Void)? = nil
+    var onBubbleHover: ((AppInfo, CGRect, AppBubbleHoverEvent) -> Void)? = nil
+    var onEditNote: ((AppInfo, CGRect) -> Void)? = nil
+    var bubbleDisabled: Bool = false
+    var showUncommonAppBubbles: Bool = AppDefaults.showUncommonAppBubbles
+    var dragResetToken: Int = 0
     var onDropApp: ((String, String, Bool) -> Void)? = nil
 
     /// Adaptive columns — auto-fit based on icon size and available width.
@@ -53,6 +58,12 @@
                         sourceTag: group.name,
                         dragModeActive: dragModeActive,
                         onDragModeChange: onDragModeChange,
+                        onBubbleHover: onBubbleHover,
+                        onEditNote: onEditNote,
+                        bubbleDisabled: bubbleDisabled,
+                        showUncommonAppBubbles: showUncommonAppBubbles,
+                        itemID: "\(group.name)|\(app.path.path)",
+                        dragResetToken: dragResetToken,
                         onSelect: { onSelectApp(app) }
                     )
                 }
@@ -60,10 +71,12 @@
         }
         .contentShape(Rectangle())
         .overlay {
-            AppDropTargetView(targetTag: group.name) { path, source, copy in
-                onDropApp?(path, source, copy)
+            if dragModeActive {
+                AppDropTargetView(targetTag: group.name) { path, source, copy in
+                    onDropApp?(path, source, copy)
+                }
+                .allowsHitTesting(false)
             }
-            .allowsHitTesting(false)
         }
         .onDrop(of: [UTType.plainText], isTargeted: nil) { providers in
             handleDrop(providers)

--
Gitblit v1.9.3