patches: squash perf fixes into respective patches, clean 9-patch series

Performance fixes folded back:
- BUF_CHARS_MODIFF → patch 0002 (implement buffer accessibility element)
- UAZoomEnabled cache + rate-limit → patch 0000 (Zoom integration)

Also in patch 0000: ns_zoom_face_is_selected (standalone compilation).
Also in patch 0001: ns_accessibility_enabled defaults to nil.
This commit is contained in:
2026-03-01 05:58:42 +01:00
parent 1bf05f1e22
commit 07826b61a0
10 changed files with 205 additions and 188 deletions

View File

@@ -1,8 +1,7 @@
From 0f7896d526a9ad17fa34c75dd7eaf15f59e070cd Mon Sep 17 00:00:00 2001
From 495554a23725688fb7030e6837efff5341e8e9a2 Mon Sep 17 00:00:00 2001
From: Martin Sukany <martin@sukany.cz>
Date: Sat, 28 Feb 2026 12:58:11 +0100
Subject: [PATCH 06/11] ns: integrate accessibility with EmacsView and
redisplay
Subject: [PATCH 6/9] ns: integrate accessibility with EmacsView and redisplay
Wire the accessibility infrastructure into EmacsView and the
@@ -52,10 +51,10 @@ 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 a056c1b..92a0dde 100644
index 01751ce..f7da553 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1370,6 +1370,9 @@ so the visual offset is (ov_line + 1) * line_h from
@@ -1404,6 +1404,9 @@ so the visual offset is (ov_line + 1) * line_h from
if (view)
ns_zoom_track_completion (f, view);
#endif /* NS_IMPL_COCOA */
@@ -65,7 +64,7 @@ index a056c1b..92a0dde 100644
}
static void
@@ -7585,7 +7588,6 @@ - (id)accessibilityTopLevelUIElement
@@ -7619,7 +7622,6 @@ - (id)accessibilityTopLevelUIElement
@@ -73,7 +72,7 @@ index a056c1b..92a0dde 100644
static BOOL
ns_ax_find_completion_overlay_range (struct buffer *b, ptrdiff_t point,
ptrdiff_t *out_start,
@@ -8680,7 +8682,6 @@ - (NSRect)accessibilityFrame
@@ -8721,7 +8723,6 @@ - (NSRect)accessibilityFrame
@end
@@ -81,7 +80,7 @@ index a056c1b..92a0dde 100644
/* ===================================================================
EmacsAccessibilityBuffer (Notifications) — AX event dispatch
@@ -9225,7 +9226,6 @@ - (NSRect)accessibilityFrame
@@ -9266,7 +9267,6 @@ - (NSRect)accessibilityFrame
@end
@@ -89,7 +88,7 @@ index a056c1b..92a0dde 100644
/* ===================================================================
EmacsAccessibilityInteractiveSpan — helpers and implementation
=================================================================== */
@@ -9555,6 +9555,7 @@ - (void)dealloc
@@ -9596,6 +9596,7 @@ - (void)dealloc
[layer release];
#endif
@@ -97,7 +96,7 @@ index a056c1b..92a0dde 100644
[[self menu] release];
[super dealloc];
}
@@ -10903,6 +10904,32 @@ - (void)windowDidBecomeKey /* for direct calls */
@@ -10944,6 +10945,32 @@ - (void)windowDidBecomeKey /* for direct calls */
XSETFRAME (event.frame_or_window, emacsframe);
kbd_buffer_store_event (&event);
ns_send_appdefined (-1); // Kick main loop
@@ -130,7 +129,7 @@ index a056c1b..92a0dde 100644
}
@@ -12143,6 +12170,332 @@ - (int) fullscreenState
@@ -12184,6 +12211,332 @@ - (int) fullscreenState
return fs_state;
}