patches: apply all maintainer review fixes (review pass 2)
All 9 patches now apply cleanly with git am on Linux (git 2.43.0). Root cause of previous failures: hunk offsets were systematically wrong by 7-40 lines; macOS git fuzzy-matched them, Linux did not. Patches regenerated via git format-patch after applying all changes. Fixes applied: - P0000: unbind_to on no-candidate fall-through path; hunk regenerated - P0001: block_input + record_unwind_protect_void in ns_ax_buffer_text - P0003: [trims release] MRC memory leak; block_input already present - P0004: mojibake comment (--- not UTF-8 em-dash) - P0006: texinfo dangling semicolons -> periods in GNUstep paragraph - P0007: em-dash fixes removed (content was already --- from P0004/P0005) - P0008: childFrameLastBuffer -> BVAR(b,name) for GC safety; BUF_OVERLAY_MODIFF removed from ensureTextCache (hl-line-mode O(N) rebuild regression); block_input in ns_ax_buffer_text (P0001 scope); voiceoverSetPoint and childFrameLastBuffer explicit init in initFrameFromEmacs:; cachedOverlayModiffForText ivar removed
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
From 6e6c5f4cf33d302e23141ce241c1747cdc0304be Mon Sep 17 00:00:00 2001
|
||||
From d020bfbad36ff87ac4fd1ec6b52f7f451435260a 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/8] ns: integrate accessibility with EmacsView and redisplay
|
||||
Subject: [PATCH 6/9] ns: integrate accessibility with EmacsView and redisplay
|
||||
|
||||
Wire the accessibility element tree into EmacsView and hook it into
|
||||
the redisplay cycle.
|
||||
@@ -27,10 +27,10 @@ com.apple.accessibility.api distributed notification.
|
||||
2 files changed, 431 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/etc/NEWS b/etc/NEWS
|
||||
index 80661a9..2b1f9e6 100644
|
||||
index 4c149e41d6..7f917f93b2 100644
|
||||
--- a/etc/NEWS
|
||||
+++ b/etc/NEWS
|
||||
@@ -4400,6 +4400,19 @@ allowing Emacs users access to speech recognition utilities.
|
||||
@@ -4385,6 +4385,19 @@ allowing Emacs users access to speech recognition utilities.
|
||||
Note: Accepting this permission allows the use of system APIs, which may
|
||||
send user data to Apple's speech recognition servers.
|
||||
|
||||
@@ -51,7 +51,7 @@ index 80661a9..2b1f9e6 100644
|
||||
** Re-introduced dictation, lost in Emacs v30 (macOS).
|
||||
We lost macOS dictation in v30 when migrating to NSTextInputClient.
|
||||
diff --git a/src/nsterm.m b/src/nsterm.m
|
||||
index 6d3b87a..7574da4 100644
|
||||
index e8bbc1ffe1..231ae95a17 100644
|
||||
--- a/src/nsterm.m
|
||||
+++ b/src/nsterm.m
|
||||
@@ -1275,7 +1275,7 @@ If a completion candidate is selected (overlay or child frame),
|
||||
@@ -63,7 +63,7 @@ index 6d3b87a..7574da4 100644
|
||||
return;
|
||||
if (!WINDOWP (f->selected_window))
|
||||
return;
|
||||
@@ -1392,7 +1392,8 @@ so the visual offset is (ov_line + 1) * line_h from
|
||||
@@ -1393,7 +1393,8 @@ so the visual offset is (ov_line + 1) * line_h from
|
||||
(zoomCursorUpdated is NO). */
|
||||
#if defined (MAC_OS_X_VERSION_MIN_REQUIRED) \
|
||||
&& MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
|
||||
@@ -73,7 +73,7 @@ index 6d3b87a..7574da4 100644
|
||||
&& !NSIsEmptyRect (view->lastCursorRect))
|
||||
{
|
||||
NSRect r = view->lastCursorRect;
|
||||
@@ -1419,6 +1420,9 @@ so the visual offset is (ov_line + 1) * line_h from
|
||||
@@ -1420,6 +1421,9 @@ so the visual offset is (ov_line + 1) * line_h from
|
||||
if (view)
|
||||
ns_zoom_track_completion (f, view);
|
||||
#endif /* NS_IMPL_COCOA */
|
||||
@@ -83,7 +83,7 @@ index 6d3b87a..7574da4 100644
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -3566,7 +3570,7 @@ EmacsView pixels (AppKit, flipped, top-left origin)
|
||||
@@ -3567,7 +3571,7 @@ EmacsView pixels (AppKit, flipped, top-left origin)
|
||||
|
||||
#if defined (MAC_OS_X_VERSION_MIN_REQUIRED) \
|
||||
&& MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
|
||||
@@ -92,7 +92,7 @@ index 6d3b87a..7574da4 100644
|
||||
{
|
||||
NSRect windowRect = [view convertRect:r toView:nil];
|
||||
NSRect screenRect
|
||||
@@ -6731,9 +6735,56 @@ - (void)applicationDidFinishLaunching: (NSNotification *)notification
|
||||
@@ -6723,9 +6727,56 @@ - (void)applicationDidFinishLaunching: (NSNotification *)notification
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -149,7 +149,7 @@ index 6d3b87a..7574da4 100644
|
||||
- (void)antialiasThresholdDidChange:(NSNotification *)notification
|
||||
{
|
||||
#ifdef NS_IMPL_COCOA
|
||||
@@ -7634,7 +7685,6 @@ - (id)accessibilityTopLevelUIElement
|
||||
@@ -7626,7 +7677,6 @@ - (id)accessibilityTopLevelUIElement
|
||||
|
||||
|
||||
|
||||
@@ -157,7 +157,7 @@ index 6d3b87a..7574da4 100644
|
||||
static BOOL
|
||||
ns_ax_find_completion_overlay_range (struct buffer *b, ptrdiff_t point,
|
||||
ptrdiff_t *out_start,
|
||||
@@ -8759,7 +8809,6 @@ - (NSRect)accessibilityFrame
|
||||
@@ -8739,7 +8789,6 @@ - (NSRect)accessibilityFrame
|
||||
@end
|
||||
|
||||
|
||||
@@ -165,15 +165,15 @@ index 6d3b87a..7574da4 100644
|
||||
/* ===================================================================
|
||||
EmacsAccessibilityBuffer (Notifications) — AX event dispatch
|
||||
|
||||
@@ -9305,7 +9354,6 @@ - (NSRect)accessibilityFrame
|
||||
@@ -9343,7 +9392,6 @@ - (NSRect)accessibilityFrame
|
||||
@end
|
||||
|
||||
|
||||
-
|
||||
/* ===================================================================
|
||||
EmacsAccessibilityInteractiveSpan — helpers and implementation
|
||||
EmacsAccessibilityInteractiveSpan --- helpers and implementation
|
||||
=================================================================== */
|
||||
@@ -9636,6 +9684,7 @@ - (void)dealloc
|
||||
@@ -9674,6 +9722,7 @@ - (void)dealloc
|
||||
[layer release];
|
||||
#endif
|
||||
|
||||
@@ -181,7 +181,7 @@ index 6d3b87a..7574da4 100644
|
||||
[[self menu] release];
|
||||
[super dealloc];
|
||||
}
|
||||
@@ -10984,6 +11033,32 @@ - (void)windowDidBecomeKey /* for direct calls */
|
||||
@@ -11022,6 +11071,32 @@ - (void)windowDidBecomeKey /* for direct calls */
|
||||
XSETFRAME (event.frame_or_window, emacsframe);
|
||||
kbd_buffer_store_event (&event);
|
||||
ns_send_appdefined (-1); // Kick main loop
|
||||
@@ -214,7 +214,7 @@ index 6d3b87a..7574da4 100644
|
||||
}
|
||||
|
||||
|
||||
@@ -12221,6 +12296,332 @@ - (int) fullscreenState
|
||||
@@ -12259,6 +12334,332 @@ - (int) fullscreenState
|
||||
return fs_state;
|
||||
}
|
||||
|
||||
@@ -547,7 +547,7 @@ index 6d3b87a..7574da4 100644
|
||||
@end /* EmacsView */
|
||||
|
||||
|
||||
@@ -14221,12 +14622,17 @@ Nil means use fullscreen the old (< 10.7) way. The old way works better with
|
||||
@@ -14255,12 +14656,17 @@ Nil means use fullscreen the old (< 10.7) way. The old way works better with
|
||||
ns_use_srgb_colorspace = YES;
|
||||
|
||||
DEFVAR_BOOL ("ns-accessibility-enabled", ns_accessibility_enabled,
|
||||
|
||||
Reference in New Issue
Block a user