From 279b3a07eb06f86b8825aa0a53e71cd3137e43a7 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Fri, 29 May 2026 11:52:56 +0800
Subject: [PATCH] Reduce app grid scroll churn
---
Apptag/AppGridCollectionView.swift | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/Apptag/AppGridCollectionView.swift b/Apptag/AppGridCollectionView.swift
index a37c414..54a218b 100644
--- a/Apptag/AppGridCollectionView.swift
+++ b/Apptag/AppGridCollectionView.swift
@@ -272,6 +272,7 @@
private var lastLayoutSize: NSSize = .zero
private var lastReportedBoundsOrigin: NSPoint?
private var scrollUnfreezeWorkItem: DispatchWorkItem?
+ private var scrollActivityIsActive = false
override var isFlipped: Bool { true }
@@ -385,14 +386,18 @@
}
private func handleScrollActivity() {
- if coordinator?.setScrollBubbleDisabled(true) == true {
- refreshVisibleRuntimeState()
+ if !scrollActivityIsActive {
+ scrollActivityIsActive = true
+ if coordinator?.setScrollBubbleDisabled(true) == true {
+ refreshVisibleRuntimeState()
+ }
+ coordinator?.onScrollActivity()
}
- coordinator?.onScrollActivity()
scrollUnfreezeWorkItem?.cancel()
let workItem = DispatchWorkItem { [weak self] in
guard let self else { return }
+ self.scrollActivityIsActive = false
self.replayPointerHover()
if self.coordinator?.setScrollBubbleDisabled(false) == true {
self.refreshVisibleRuntimeState()
--
Gitblit v1.9.3