patches: fold line index + remove NS_AX_TEXT_CAP into 0001-0002
- 0001: remove NS_AX_TEXT_CAP (100K char cap), add lineStartOffsets/ lineCount ivars and method declarations to nsterm.h - 0002: add lineForAXIndex:/rangeForLine: O(log L) helpers, build line index in ensureTextCache, replace O(L) line scanning in accessibilityInsertionPointLineNumber/accessibilityLineForIndex/ accessibilityRangeForLine, free index in invalidateTextCache/dealloc - 0009 deleted (folded into 0001+0002) - README.txt: remove NS_AX_TEXT_CAP references, update known limitations, stress test threshold 50K lines
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
From 72a0b8bad2d200cf093d9e0c60d937032784bd74 Mon Sep 17 00:00:00 2001
|
||||
From 3bbe8ba29725a4708595befa6b73e5873a2aab43 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/6] ns: integrate accessibility with EmacsView and redisplay
|
||||
Subject: [PATCH 5/8] ns: integrate accessibility with EmacsView and redisplay
|
||||
|
||||
Wire the accessibility infrastructure into EmacsView and the
|
||||
redisplay cycle. After this patch, VoiceOver and Zoom are active.
|
||||
@@ -53,7 +53,7 @@ index 7367e3c..608650e 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 bfa1b26..1780194 100644
|
||||
index 91d0241..125e52c 100644
|
||||
--- a/src/nsterm.m
|
||||
+++ b/src/nsterm.m
|
||||
@@ -1105,6 +1105,11 @@ ns_update_end (struct frame *f)
|
||||
@@ -112,7 +112,7 @@ index bfa1b26..1780194 100644
|
||||
ns_focus (f, NULL, 0);
|
||||
|
||||
NSGraphicsContext *ctx = [NSGraphicsContext currentContext];
|
||||
@@ -7293,7 +7335,6 @@ ns_ax_post_notification_with_info (id element,
|
||||
@@ -7531,7 +7573,6 @@ ns_ax_post_notification_with_info (id element,
|
||||
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ index bfa1b26..1780194 100644
|
||||
static BOOL
|
||||
ns_ax_find_completion_overlay_range (struct buffer *b, ptrdiff_t point,
|
||||
ptrdiff_t *out_start,
|
||||
@@ -8380,7 +8421,6 @@ ns_ax_completion_text_for_span (EmacsAccessibilityBuffer *elem,
|
||||
@@ -8625,7 +8666,6 @@ ns_ax_completion_text_for_span (EmacsAccessibilityBuffer *elem,
|
||||
@end
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@ index bfa1b26..1780194 100644
|
||||
/* ===================================================================
|
||||
EmacsAccessibilityBuffer (Notifications) — AX event dispatch
|
||||
|
||||
@@ -8925,7 +8965,6 @@ ns_ax_completion_text_for_span (EmacsAccessibilityBuffer *elem,
|
||||
@@ -9170,7 +9210,6 @@ ns_ax_completion_text_for_span (EmacsAccessibilityBuffer *elem,
|
||||
@end
|
||||
|
||||
|
||||
@@ -136,7 +136,7 @@ index bfa1b26..1780194 100644
|
||||
/* ===================================================================
|
||||
EmacsAccessibilityInteractiveSpan — helpers and implementation
|
||||
=================================================================== */
|
||||
@@ -9255,6 +9294,7 @@ ns_ax_scan_interactive_spans (struct window *w,
|
||||
@@ -9500,6 +9539,7 @@ ns_ax_scan_interactive_spans (struct window *w,
|
||||
[layer release];
|
||||
#endif
|
||||
|
||||
@@ -144,7 +144,7 @@ index bfa1b26..1780194 100644
|
||||
[[self menu] release];
|
||||
[super dealloc];
|
||||
}
|
||||
@@ -10603,6 +10643,32 @@ ns_in_echo_area (void)
|
||||
@@ -10848,6 +10888,32 @@ ns_in_echo_area (void)
|
||||
XSETFRAME (event.frame_or_window, emacsframe);
|
||||
kbd_buffer_store_event (&event);
|
||||
ns_send_appdefined (-1); // Kick main loop
|
||||
@@ -177,7 +177,7 @@ index bfa1b26..1780194 100644
|
||||
}
|
||||
|
||||
|
||||
@@ -11840,6 +11906,332 @@ ns_in_echo_area (void)
|
||||
@@ -12085,6 +12151,332 @@ ns_in_echo_area (void)
|
||||
return fs_state;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user