patches: address all maintainer review issues
- Issue 1: Add explicit ApplicationServices import for UAZoomEnabled/ UAZoomChangeFocus (was implicit via Carbon.h, now explicit) - Issue 2: Rename FOR_EACH_FRAME variable 'frames' -> 'frame' (plural was misleading; matches Emacs convention) - Issue 3: Move unblock_input before ObjC calls in postCompletionAnnouncementForBuffer: to avoid holding block_input during @synchronized operations - Issue 4: Fix DEFVAR_BOOL doc and Texinfo: initial value is nil, not t; auto-detection sets it at startup - Issue 5: Replace magic 10000 with NS_AX_MAX_COMPLETION_BUFFER_CHARS constant with explanatory comment - Issue 6: Add comment to lineStartOffsets loop explaining it is gated on BUF_CHARS_MODIFF and never runs on the hot path - Issue 8: Rewrite all 9 commit messages to GNU ChangeLog format with '* file (symbol): description' entries - Issue 9: Break 81-char @interface line in nsterm.h - Issue 10: Add WINDOWP/BUFFERP guards before dereferencing cf->selected_window and cw->contents in ns_zoom_find_child_frame_candidate - Issue 11: Fix @pxref -> @xref at sentence start in macos.texi
This commit is contained in:
@@ -1,26 +1,27 @@
|
||||
From e73e311a95d86d6e88a78185aab42ca65b65e066 Mon Sep 17 00:00:00 2001
|
||||
From 9c7e408085f52f1e44b6cb71e64448162e5c3e68 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Sukany <martin@sukany.cz>
|
||||
Date: Sat, 28 Feb 2026 12:58:11 +0100
|
||||
Subject: [PATCH 4/8] ns: add interactive span elements for Tab navigation
|
||||
|
||||
* src/nsterm.m (ns_ax_scan_interactive_spans): New function.
|
||||
(EmacsAccessibilityInteractiveSpan): Implement AXButton/AXLink
|
||||
elements with AXPress action.
|
||||
* src/nsterm.m (ns_ax_scan_interactive_spans): New function; scans the
|
||||
visible portion of a buffer for interactive text properties
|
||||
(ns-ax-widget, ns-ax-button, ns-ax-follow-link, ns-ax-org-link,
|
||||
mouse-face, overlay keymap) and builds EmacsAccessibilityInteractiveSpan
|
||||
elements.
|
||||
(EmacsAccessibilityInteractiveSpan): Implement AXButton and AXLink
|
||||
elements with an AXPress action that sends a synthetic TAB keystroke.
|
||||
(EmacsAccessibilityBuffer(InteractiveSpans)): New category.
|
||||
accessibilityChildrenInNavigationOrder for Tab/Shift-Tab cycling
|
||||
with wrap-around.
|
||||
|
||||
Tested on macOS 14. Verified: Tab-cycling through org-mode links,
|
||||
*Completions* candidates, widget buttons, customize buffers.
|
||||
(accessibilityChildrenInNavigationOrder): Return cached span array,
|
||||
rebuilding lazily when interactiveSpansDirty is set.
|
||||
---
|
||||
src/nsterm.m | 286 +++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 286 insertions(+)
|
||||
|
||||
diff --git a/src/nsterm.m b/src/nsterm.m
|
||||
index fee3e49..8c26e27 100644
|
||||
index 350111a..992a5ce 100644
|
||||
--- a/src/nsterm.m
|
||||
+++ b/src/nsterm.m
|
||||
@@ -9282,6 +9282,292 @@ - (NSRect)accessibilityFrame
|
||||
@@ -9304,6 +9304,292 @@ - (NSRect)accessibilityFrame
|
||||
|
||||
@end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user