Revision: 14898
          http://sourceforge.net/p/skim-app/code/14898
Author:   hofman
Date:     2025-01-28 17:36:53 +0000 (Tue, 28 Jan 2025)
Log Message:
-----------
reuse function to find pdfview

Modified Paths:
--------------
    trunk/PDFDocumentView_SKExtensions.m

Modified: trunk/PDFDocumentView_SKExtensions.m
===================================================================
--- trunk/PDFDocumentView_SKExtensions.m        2025-01-28 17:21:15 UTC (rev 
14897)
+++ trunk/PDFDocumentView_SKExtensions.m        2025-01-28 17:36:53 UTC (rev 
14898)
@@ -52,18 +52,18 @@
 
 #pragma mark -
 
-static id fallback_pdfView(id self, SEL _cmd) {
+static id get_pdfView(id self, SEL _cmd) {
     id pdfView = [[self enclosingScrollView] superview];
     return [pdfView isKindOfClass:[PDFView class]] ? pdfView : nil;
 }
 
-static id fallback_ivar_pdfView(id self, SEL _cmd) {
+static id ivar_get_pdfView(id self, SEL _cmd) {
     id pdfView = nil;
     @try {
         pdfView = [self valueForKeyPath:@"_private.pdfView"];
     }
     @catch (id exception) {
-        pdfView = fallback_pdfView(self, _cmd);
+        pdfView = get_pdfView(self, _cmd);
     }
     return pdfView;
 }
@@ -82,14 +82,14 @@
 
 // On Sierra and later menuForEvent: is forwarded to the PDFView of the 
PDFPage rather than the actual PDFView,
 static NSMenu *replacement_menuForEvent(id self, SEL _cmd, NSEvent *event) {
-    id view = [self enclosingScrollView];
-    while ((view = [view superview]))
-        if ([view isKindOfClass:[PDFView class]])
-            break;
-    return [view menuForEvent:event];
+    id pdfView = get_pdfView(self, @selector(pdfView));
+    if (pdfView)
+        return [get_pdfView(self, @selector(pdfView)) menuForEvent:event];
+    else
+        return original_menuForEvent(self, _cmd, event);
 }
 
-#pragma mark Skim support
+#pragma mark Enhanced accessibility support
 
 static BOOL replacement_isAccessibilityAlternateUIVisible(id self, SEL _cmd) {
     id pdfView = [self pdfView];
@@ -141,9 +141,9 @@
 
     if ([PDFDocumentViewClass instancesRespondToSelector:@selector(pdfView)] 
== NO) {
         if (class_getInstanceVariable(PDFDocumentViewClass, "_private"))
-            class_addMethod(PDFDocumentViewClass, @selector(pdfView), 
(IMP)fallback_ivar_pdfView, "@@:");
+            class_addMethod(PDFDocumentViewClass, @selector(pdfView), 
(IMP)ivar_get_pdfView, "@@:");
         else
-            class_addMethod(PDFDocumentViewClass, @selector(pdfView), 
(IMP)fallback_pdfView, "@@:");
+            class_addMethod(PDFDocumentViewClass, @selector(pdfView), 
(IMP)get_pdfView, "@@:");
     }
     
     original_isAccessibilityAlternateUIVisible = (BOOL (*)(id, 
SEL))SKReplaceInstanceMethodImplementation(PDFDocumentViewClass, 
@selector(isAccessibilityAlternateUIVisible), 
(IMP)replacement_isAccessibilityAlternateUIVisible);

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Skim-app-commit mailing list
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to