patches: fix all safe pre-submission issues
- Blocker #1: add BOOL emacsMovedCursor = YES in patch 0005 so series compiles standalone; patch 0008 replaces it with !voiceoverSetPoint - Blocker #3: change all Daneel authorship to Martin Sukany - Zoom gate: remove ns_accessibility_enabled guards from Zoom code paths (0005 no longer adds them; 0008 retains the clarifying comment) - eassert: remove redundant BUFFER_LIVE_P eassert with contradictory comment in patch 0008 - macos.texi: integrate orphan 'Block-style cursors' paragraph as @item in the Known Limitations list - cindex: restore @cindex Zoom, cursor tracking (macOS) removed in 0008 - ChangeLog 0002: list only functions actually added in that patch - ChangeLog 0008: accurate description (remove wrong BUF_CHARS_MODIFF claim for ensureTextCache; ns_ax_buffer_text block_input was in 0001) - git apply --check: all 9 patches apply cleanly on fresh base Remaining open issue: BUF_MODIFF regression in patch 0007 (ensureTextCache O(N) rebuild per font-lock pass) requires design decision before submission.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
From 0470786c91eb4a464d8580387b83a4a8d4e4f8eb Mon Sep 17 00:00:00 2001
|
||||
From fcc1826baee5b424d5fdc176239c5675aee6159b Mon Sep 17 00:00:00 2001
|
||||
From: Martin Sukany <martin@sukany.cz>
|
||||
Date: Sat, 28 Feb 2026 22:39:35 +0100
|
||||
Subject: [PATCH] ns: integrate with macOS Zoom for cursor tracking
|
||||
Subject: [PATCH 1/9] ns: integrate with macOS Zoom for cursor tracking
|
||||
|
||||
Inform macOS Zoom of the text cursor position so the zoomed viewport
|
||||
follows keyboard focus in Emacs. Also track completion candidates so
|
||||
@@ -86,7 +86,7 @@ index 932d209f56..88c9251c18 100644
|
||||
#endif
|
||||
|
||||
static EmacsMenu *dockMenu;
|
||||
@@ -1081,6 +1086,284 @@ static NSRect constrain_frame_rect(NSRect frameRect, bool isFullscreen)
|
||||
@@ -1081,6 +1086,281 @@ static NSRect constrain_frame_rect(NSRect frameRect, bool isFullscreen)
|
||||
}
|
||||
|
||||
|
||||
@@ -103,9 +103,9 @@ index 932d209f56..88c9251c18 100644
|
||||
+
|
||||
+/* Cached wrapper around ns_zoom_enabled_p ().
|
||||
+ ns_zoom_enabled_p () performs a synchronous Mach IPC roundtrip to the
|
||||
+ macOS Accessibility server (~50-200 uss per call). With call sites
|
||||
+ macOS Accessibility server (~50-200 µs per call). With call sites
|
||||
+ in ns_draw_window_cursor, ns_update_end, and ns_zoom_track_completion,
|
||||
+ the overhead accumulates to ~150-600 uss per redisplay cycle. Zoom
|
||||
+ the overhead accumulates to ~150-600 µs per redisplay cycle. Zoom
|
||||
+ state changes only on explicit user action in System Settings, so a
|
||||
+ 1-second TTL is safe and indistinguishable from querying every frame.
|
||||
+ Uses CFAbsoluteTimeGetCurrent() (~5 ns, a VDSO read) for timing. */
|
||||
@@ -130,9 +130,6 @@ index 932d209f56..88c9251c18 100644
|
||||
+ Defined here so the Zoom patch compiles independently of the
|
||||
+ VoiceOver patches. */
|
||||
+static bool
|
||||
+/* Note: ns_ax_face_is_selected in the VoiceOver series has identical
|
||||
+ logic. The duplication is intentional: both series are
|
||||
+ independent and must compile standalone. */
|
||||
+ns_zoom_face_is_selected (Lisp_Object face)
|
||||
+{
|
||||
+ if (SYMBOLP (face))
|
||||
|
||||
Reference in New Issue
Block a user