Revision: 15953
http://sourceforge.net/p/skim-app/code/15953
Author: hofman
Date: 2026-01-03 18:46:29 +0000 (Sat, 03 Jan 2026)
Log Message:
-----------
set accessibility property rather than swizzling getter
Modified Paths:
--------------
trunk/PDFDocumentView_SKExtensions.m
trunk/SKMainWindowController.m
trunk/SKMainWindowController_UI.m
trunk/SKPDFView.h
trunk/SKPDFView.m
trunk/SKSecondaryPDFView.m
trunk/SKSnapshotPDFView.m
Modified: trunk/PDFDocumentView_SKExtensions.m
===================================================================
--- trunk/PDFDocumentView_SKExtensions.m 2026-01-03 18:25:23 UTC (rev
15952)
+++ trunk/PDFDocumentView_SKExtensions.m 2026-01-03 18:46:29 UTC (rev
15953)
@@ -69,7 +69,6 @@
static id (*original_menuForEvent)(id, SEL, id) = NULL;
-static BOOL (*original_isAccessibilityAlternateUIVisible)(id, SEL) = NULL;
static BOOL (*original_accessibilityPerformShowAlternateUI)(id, SEL) = NULL;
static BOOL (*original_accessibilityPerformShowDefaultUI)(id, SEL) = NULL;
static BOOL (*original_accessibilityPerformShowMenu)(id, SEL) = NULL;
@@ -90,10 +89,6 @@
#pragma mark Enhanced accessibility support
-static BOOL replacement_isAccessibilityAlternateUIVisible(id self, SEL _cmd) {
- return [pdfView(self) isAccessibilityAlternateUIVisible];
-}
-
static BOOL replacement_accessibilityPerformShowAlternateUI(id self, SEL _cmd)
{
return [pdfView(self) accessibilityPerformShowAlternateUI];
}
@@ -134,7 +129,6 @@
if (PDFDocumentViewClass == Nil)
return;
- original_isAccessibilityAlternateUIVisible = (BOOL (*)(id,
SEL))SKReplaceInstanceMethodImplementation(PDFDocumentViewClass,
@selector(isAccessibilityAlternateUIVisible),
(IMP)replacement_isAccessibilityAlternateUIVisible);
original_accessibilityPerformShowAlternateUI = (BOOL (*)(id,
SEL))SKReplaceInstanceMethodImplementation(PDFDocumentViewClass,
@selector(accessibilityPerformShowAlternateUI),
(IMP)replacement_accessibilityPerformShowAlternateUI);
original_accessibilityPerformShowDefaultUI = (BOOL (*)(id,
SEL))SKReplaceInstanceMethodImplementation(PDFDocumentViewClass,
@selector(accessibilityPerformShowDefaultUI),
(IMP)replacement_accessibilityPerformShowDefaultUI);
original_accessibilityPerformShowMenu = (BOOL (*)(id,
SEL))SKReplaceInstanceMethodImplementation(PDFDocumentViewClass,
@selector(accessibilityPerformShowMenu),
(IMP)replacement_accessibilityPerformShowMenu);
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2026-01-03 18:25:23 UTC (rev 15952)
+++ trunk/SKMainWindowController.m 2026-01-03 18:46:29 UTC (rev 15953)
@@ -1857,6 +1857,10 @@
[contentView layoutSubtreeIfNeeded];
[window recalculateKeyViewLoop];
}
+
+ id docView = NSAccessibilityUnignoredAncestor([pdfView documentView]);
+ [docView setAccessibilityAlternateUIVisible:NO];
+ NSAccessibilityPostNotificationWithUserInfo(docView,
NSAccessibilityLayoutChangedNotification, nil);
}
- (void)showFindBar {
@@ -1921,6 +1925,10 @@
[[self window] recalculateKeyViewLoop];
[findField selectText:nil];
}
+
+ id docView = NSAccessibilityUnignoredAncestor([pdfView documentView]);
+ [docView setAccessibilityAlternateUIVisible:YES];
+ NSAccessibilityPostNotificationWithUserInfo(docView,
NSAccessibilityLayoutChangedNotification, [NSDictionary
dictionaryWithObjectsAndKeys:NSAccessibilityUnignoredChildrenForOnlyChild([findController
view]), NSAccessibilityUIElementsKey, nil]);
}
}
Modified: trunk/SKMainWindowController_UI.m
===================================================================
--- trunk/SKMainWindowController_UI.m 2026-01-03 18:25:23 UTC (rev 15952)
+++ trunk/SKMainWindowController_UI.m 2026-01-03 18:46:29 UTC (rev 15953)
@@ -1567,23 +1567,14 @@
}
- (void)PDFViewPerformFind:(PDFView *)aPDFView {
- BOOL wasVisible = [[findController view] window] != nil;
[self showFindBar];
- if (wasVisible == NO)
-
NSAccessibilityPostNotificationWithUserInfo(NSAccessibilityUnignoredAncestor([pdfView
documentView]), NSAccessibilityLayoutChangedNotification, [NSDictionary
dictionaryWithObjectsAndKeys:NSAccessibilityUnignoredChildrenForOnlyChild([findController
view]), NSAccessibilityUIElementsKey, nil]);
}
- (void)PDFViewPerformHideFind:(PDFView *)aPDFView {
- if ([[findController view] window]) {
+ if ([[findController view] window])
[findController remove:nil];
-
NSAccessibilityPostNotificationWithUserInfo(NSAccessibilityUnignoredAncestor([pdfView
documentView]), NSAccessibilityLayoutChangedNotification, nil);
- }
}
-- (BOOL)PDFViewIsFindVisible:(PDFView *)aPDFView {
- return [[findController view] window] != nil;
-}
-
- (void)PDFViewPerformGoToPage:(PDFView *)aPDFView {
[self doGoToPage:aPDFView];
}
Modified: trunk/SKPDFView.h
===================================================================
--- trunk/SKPDFView.h 2026-01-03 18:25:23 UTC (rev 15952)
+++ trunk/SKPDFView.h 2026-01-03 18:46:29 UTC (rev 15953)
@@ -123,7 +123,6 @@
- (void)PDFView:(PDFView *)pdfView editAnnotation:(PDFAnnotation *)annotation;
- (void)PDFView:(PDFView *)pdfView showSnapshotAtPageNumber:(NSInteger)pageNum
forRect:(NSRect)rect scaleFactor:(CGFloat)scaleFactor autoFits:(BOOL)autoFits;
- (void)PDFViewPerformHideFind:(PDFView *)pdfView;
-- (BOOL)PDFViewIsFindVisible:(PDFView *)pdfView;
- (BOOL)PDFView:(PDFView *)pdfView performAction:(PDFAction *)action;
- (void)PDFView:(PDFView *)pdfView didRotatePageAtIndex:(NSUInteger)idx
by:(NSInteger)rotation;
- (nullable NSUndoManager *)undoManagerForPDFView:(PDFView *)pdfView;
Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m 2026-01-03 18:25:23 UTC (rev 15952)
+++ trunk/SKPDFView.m 2026-01-03 18:46:29 UTC (rev 15953)
@@ -5129,10 +5129,6 @@
return NO;
}
-- (BOOL)isAccessibilityAlternateUIVisible{
- return [[self delegate]
respondsToSelector:@selector(PDFViewIsFindVisible:)] && [[self delegate]
PDFViewIsFindVisible:self];
-}
-
@end
static inline PDFAreaOfInterest SKAreaOfInterestForResizeHandle(SKRectEdges
mask, PDFPage *page) {
Modified: trunk/SKSecondaryPDFView.m
===================================================================
--- trunk/SKSecondaryPDFView.m 2026-01-03 18:25:23 UTC (rev 15952)
+++ trunk/SKSecondaryPDFView.m 2026-01-03 18:46:29 UTC (rev 15953)
@@ -291,7 +291,9 @@
[[controlView topAnchor] constraintEqualToAnchor:[self topAnchor]]];
[[controlView animator] setAlphaValue:1.0];
[NSLayoutConstraint activateConstraints:constraints];
-
NSAccessibilityPostNotificationWithUserInfo(NSAccessibilityUnignoredAncestor([self
documentView]), NSAccessibilityLayoutChangedNotification, [NSDictionary
dictionaryWithObjectsAndKeys:NSAccessibilityUnignoredChildren([controlView
subviews]), NSAccessibilityUIElementsKey, nil]);
+ id docView = NSAccessibilityUnignoredAncestor([self documentView]);
+ [docView setAccessibilityAlternateUIVisible:YES];
+ NSAccessibilityPostNotificationWithUserInfo(docView,
NSAccessibilityLayoutChangedNotification, [NSDictionary
dictionaryWithObjectsAndKeys:NSAccessibilityUnignoredChildren([controlView
subviews]), NSAccessibilityUIElementsKey, nil]);
}
- (void)hideControlView {
@@ -301,7 +303,9 @@
} completionHandler:^{
[controlView removeFromSuperview];
}];
-
NSAccessibilityPostNotificationWithUserInfo(NSAccessibilityUnignoredAncestor([self
documentView]), NSAccessibilityLayoutChangedNotification, nil);
+ id docView = NSAccessibilityUnignoredAncestor([self documentView]);
+ [docView setAccessibilityAlternateUIVisible:NO];
+ NSAccessibilityPostNotificationWithUserInfo(docView,
NSAccessibilityLayoutChangedNotification, nil);
}
}
Modified: trunk/SKSnapshotPDFView.m
===================================================================
--- trunk/SKSnapshotPDFView.m 2026-01-03 18:25:23 UTC (rev 15952)
+++ trunk/SKSnapshotPDFView.m 2026-01-03 18:46:29 UTC (rev 15953)
@@ -196,7 +196,9 @@
[[controlView topAnchor] constraintEqualToAnchor:[self topAnchor]]];
[NSLayoutConstraint activateConstraints:constraints];
[[controlView animator] setAlphaValue:1.0];
-
NSAccessibilityPostNotificationWithUserInfo(NSAccessibilityUnignoredAncestor([self
documentView]), NSAccessibilityLayoutChangedNotification, [NSDictionary
dictionaryWithObjectsAndKeys:NSAccessibilityUnignoredChildren([controlView
subviews]), NSAccessibilityUIElementsKey, nil]);
+ id docView = NSAccessibilityUnignoredAncestor([self documentView]);
+ [docView setAccessibilityAlternateUIVisible:YES];
+ NSAccessibilityPostNotificationWithUserInfo(docView,
NSAccessibilityLayoutChangedNotification, [NSDictionary
dictionaryWithObjectsAndKeys:NSAccessibilityUnignoredChildren([controlView
subviews]), NSAccessibilityUIElementsKey, nil]);
}
- (void)hideControlView {
@@ -207,7 +209,9 @@
} completionHandler:^{
[controlView removeFromSuperview];
}];
-
NSAccessibilityPostNotificationWithUserInfo(NSAccessibilityUnignoredAncestor([self
documentView]), NSAccessibilityLayoutChangedNotification, nil);
+ id docView = NSAccessibilityUnignoredAncestor([self documentView]);
+ [docView setAccessibilityAlternateUIVisible:NO];
+ NSAccessibilityPostNotificationWithUserInfo(docView,
NSAccessibilityLayoutChangedNotification, nil);
}
}
@@ -664,8 +668,4 @@
return YES;
}
-- (BOOL)isAccessibilityAlternateUIVisible {
- return [controlView superview] != nil;
-}
-
@end
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit