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
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit