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

Reply via email to