patches: restore postAccessibilityUpdates in ns_update_end (VoiceOver broken after rebase)
This commit is contained in:
@@ -1,13 +1,13 @@
|
|||||||
From 241b432a8a1a5d562a18b5a2ac293dfbd7ccb466 Mon Sep 17 00:00:00 2001
|
From 4626c5d0688db9d878120b120cb19e12fa2f3a94 Mon Sep 17 00:00:00 2001
|
||||||
From: Martin Sukany <martin@sukany.cz>
|
From: Martin Sukany <martin@sukany.cz>
|
||||||
Date: Fri, 27 Feb 2026 07:43:09 +0100
|
Date: Fri, 27 Feb 2026 09:39:39 +0100
|
||||||
Subject: [PATCH] ns: implement VoiceOver accessibility (AXBoundsForRange, line
|
Subject: [PATCH] ns: implement VoiceOver accessibility (AXBoundsForRange, line
|
||||||
nav, completions)
|
nav, completions)
|
||||||
|
|
||||||
---
|
---
|
||||||
src/nsterm.h | 71 ++
|
src/nsterm.h | 71 ++
|
||||||
src/nsterm.m | 2194 ++++++++++++++++++++++++++++++++++++++++++++++----
|
src/nsterm.m | 2195 ++++++++++++++++++++++++++++++++++++++++++++++----
|
||||||
2 files changed, 2123 insertions(+), 142 deletions(-)
|
2 files changed, 2126 insertions(+), 140 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/nsterm.h b/src/nsterm.h
|
diff --git a/src/nsterm.h b/src/nsterm.h
|
||||||
index 7c1ee4c..22828f2 100644
|
index 7c1ee4c..22828f2 100644
|
||||||
@@ -106,10 +106,22 @@ index 7c1ee4c..22828f2 100644
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/nsterm.m b/src/nsterm.m
|
diff --git a/src/nsterm.m b/src/nsterm.m
|
||||||
index 932d209..fca5c15 100644
|
index 932d209..06ee636 100644
|
||||||
--- a/src/nsterm.m
|
--- a/src/nsterm.m
|
||||||
+++ b/src/nsterm.m
|
+++ b/src/nsterm.m
|
||||||
@@ -3232,6 +3232,37 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar cursors.
|
@@ -1104,6 +1104,11 @@ static NSRect constrain_frame_rect(NSRect frameRect, bool isFullscreen)
|
||||||
|
|
||||||
|
unblock_input ();
|
||||||
|
ns_updating_frame = NULL;
|
||||||
|
+
|
||||||
|
+#ifdef NS_IMPL_COCOA
|
||||||
|
+ /* Post accessibility notifications after each redisplay cycle. */
|
||||||
|
+ [view postAccessibilityUpdates];
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
@@ -3232,6 +3237,37 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar cursors.
|
||||||
/* Prevent the cursor from being drawn outside the text area. */
|
/* Prevent the cursor from being drawn outside the text area. */
|
||||||
r = NSIntersectionRect (r, ns_row_rect (w, glyph_row, TEXT_AREA));
|
r = NSIntersectionRect (r, ns_row_rect (w, glyph_row, TEXT_AREA));
|
||||||
|
|
||||||
@@ -147,7 +159,7 @@ index 932d209..fca5c15 100644
|
|||||||
ns_focus (f, NULL, 0);
|
ns_focus (f, NULL, 0);
|
||||||
|
|
||||||
NSGraphicsContext *ctx = [NSGraphicsContext currentContext];
|
NSGraphicsContext *ctx = [NSGraphicsContext currentContext];
|
||||||
@@ -6849,219 +6880,1784 @@ - (BOOL)fulfillService: (NSString *)name withArg: (NSString *)arg
|
@@ -6849,216 +6885,1781 @@ - (BOOL)fulfillService: (NSString *)name withArg: (NSString *)arg
|
||||||
|
|
||||||
/* ==========================================================================
|
/* ==========================================================================
|
||||||
|
|
||||||
@@ -794,9 +806,7 @@ index 932d209..fca5c15 100644
|
|||||||
|
|
||||||
-- (void)keyDown: (NSEvent *)theEvent
|
-- (void)keyDown: (NSEvent *)theEvent
|
||||||
+- (void)dealloc
|
+- (void)dealloc
|
||||||
{
|
+{
|
||||||
- Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (emacsframe);
|
|
||||||
- int code;
|
|
||||||
+ [cachedText release];
|
+ [cachedText release];
|
||||||
+ [cachedCompletionAnnouncement release];
|
+ [cachedCompletionAnnouncement release];
|
||||||
+ if (visibleRuns)
|
+ if (visibleRuns)
|
||||||
@@ -2068,13 +2078,10 @@ index 932d209..fca5c15 100644
|
|||||||
+#define NS_KEYLOG 0
|
+#define NS_KEYLOG 0
|
||||||
+
|
+
|
||||||
+- (void)keyDown: (NSEvent *)theEvent
|
+- (void)keyDown: (NSEvent *)theEvent
|
||||||
+{
|
{
|
||||||
+ Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (emacsframe);
|
Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (emacsframe);
|
||||||
+ int code;
|
int code;
|
||||||
unsigned fnKeysym = 0;
|
@@ -8237,6 +9838,28 @@ - (void)windowDidBecomeKey /* for direct calls */
|
||||||
static NSMutableArray *nsEvArray;
|
|
||||||
unsigned int flags = [theEvent modifierFlags];
|
|
||||||
@@ -8237,6 +9833,28 @@ - (void)windowDidBecomeKey /* for direct calls */
|
|
||||||
XSETFRAME (event.frame_or_window, emacsframe);
|
XSETFRAME (event.frame_or_window, emacsframe);
|
||||||
kbd_buffer_store_event (&event);
|
kbd_buffer_store_event (&event);
|
||||||
ns_send_appdefined (-1); // Kick main loop
|
ns_send_appdefined (-1); // Kick main loop
|
||||||
@@ -2103,7 +2110,7 @@ index 932d209..fca5c15 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -9474,6 +11092,298 @@ - (int) fullscreenState
|
@@ -9474,6 +11097,298 @@ - (int) fullscreenState
|
||||||
return fs_state;
|
return fs_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user