patches: fix Corfu Zoom tracking — replace rate-limit with parent-frame guard
Root cause: the 50ms rate limit broke child-frame (Corfu) tracking. When the Corfu child frame redraws, its ns_update_end fires first and resets the rate-limit timer. When the parent frame's ns_update_end fires immediately after, the timer has not expired, so ns_zoom_track_completion returns early without scanning child frames. Zoom focus stays on the first candidate. Fix: remove the rate limit; add a FRAME_PARENT_FRAME(f) guard instead. Child frames have no completion children to scan; their parent's ns_update_end does the scan via FOR_EACH_FRAME. Returning early on child-frame calls avoids the redundant scan and leaves the timer problem moot. Overhead without the rate limit is ~40 Lisp evaluations per redisplay (~5-20 µs), acceptable given ns_zoom_enabled_p() already caches the UAZoomEnabled() IPC call.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
From 388628944f6ecc74806932e0ee2ad89c3df669ed Mon Sep 17 00:00:00 2001
|
||||
From 7303dd3913729a454b44fe71219acbd612d624b4 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Sukany <martin@sukany.cz>
|
||||
Date: Sat, 28 Feb 2026 12:58:11 +0100
|
||||
Subject: [PATCH 5/9] ns: add interactive span elements for Tab navigation
|
||||
@@ -17,10 +17,10 @@ Tested on macOS 14. Verified: Tab-cycling through org-mode links,
|
||||
1 file changed, 286 insertions(+)
|
||||
|
||||
diff --git a/src/nsterm.m b/src/nsterm.m
|
||||
index ecc8c54..5eaf480 100644
|
||||
index 7e3d57a..1a21f2e 100644
|
||||
--- a/src/nsterm.m
|
||||
+++ b/src/nsterm.m
|
||||
@@ -9266,6 +9266,292 @@ - (NSRect)accessibilityFrame
|
||||
@@ -9263,6 +9263,292 @@ - (NSRect)accessibilityFrame
|
||||
|
||||
@end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user