Revision: 14289
http://sourceforge.net/p/skim-app/code/14289
Author: hofman
Date: 2024-06-02 22:23:06 +0000 (Sun, 02 Jun 2024)
Log Message:
-----------
Convenience method to get the maximum backing scale. Ignore touch bar screen.
Modified Paths:
--------------
trunk/NSScreen_SKExtensions.h
trunk/NSScreen_SKExtensions.m
trunk/PDFPage_SKExtensions.m
trunk/SKSnapshotWindowController.m
Modified: trunk/NSScreen_SKExtensions.h
===================================================================
--- trunk/NSScreen_SKExtensions.h 2024-06-02 16:09:41 UTC (rev 14288)
+++ trunk/NSScreen_SKExtensions.h 2024-06-02 22:23:06 UTC (rev 14289)
@@ -50,6 +50,8 @@
@property (nonatomic, readonly) NSScreen *primaryScreen;
+@property (class, readonly) CGFloat maxBackingScaleFactor;
+
@end
NS_ASSUME_NONNULL_END
Modified: trunk/NSScreen_SKExtensions.m
===================================================================
--- trunk/NSScreen_SKExtensions.m 2024-06-02 16:09:41 UTC (rev 14288)
+++ trunk/NSScreen_SKExtensions.m 2024-06-02 22:23:06 UTC (rev 14289)
@@ -102,4 +102,13 @@
return self;
}
++ (CGFloat)maxBackingScaleFactor {
+ CGFloat scale = 1.0;
+ for (NSScreen *screen in [NSScreen screens]) {
+ if (NSHeight([screen frame]) > 100.0)
+ scale = fmax(scale, [screen backingScaleFactor]);
+ }
+ return 1.0;
+}
+
@end
Modified: trunk/PDFPage_SKExtensions.m
===================================================================
--- trunk/PDFPage_SKExtensions.m 2024-06-02 16:09:41 UTC (rev 14288)
+++ trunk/PDFPage_SKExtensions.m 2024-06-02 22:23:06 UTC (rev 14289)
@@ -61,6 +61,7 @@
#import "NSURL_SKExtensions.h"
#import "NSString_SKExtensions.h"
#import "SKLine.h"
+#import "NSScreen_SKExtensions.h"
NSString *SKPDFPageBoundsDidChangeNotification =
@"SKPDFPageBoundsDidChangeNotification";
@@ -153,7 +154,7 @@
NSSize pageSize = bounds.size;
CGFloat scale = 1.0;
NSSize thumbnailSize;
- CGFloat backingScale = [[[NSScreen screens]
valueForKeyPath:@"@max.backingScaleFactor"] doubleValue];
+ CGFloat backingScale = [NSScreen maxBackingScaleFactor];
CGFloat shadowBlurRadius = 0.0;
CGFloat shadowOffset = 0.0;
NSRect pageRect = NSZeroRect;
Modified: trunk/SKSnapshotWindowController.m
===================================================================
--- trunk/SKSnapshotWindowController.m 2024-06-02 16:09:41 UTC (rev 14288)
+++ trunk/SKSnapshotWindowController.m 2024-06-02 22:23:06 UTC (rev 14289)
@@ -66,6 +66,7 @@
#import "NSScroller_SKExtensions.h"
#import "NSGraphics_SKExtensions.h"
#import "NSView_SKExtensions.h"
+#import "NSScreen_SKExtensions.h"
#define SMALL_DELAY 0.1
#define RESIZE_TIME_FACTOR 1.0
@@ -481,7 +482,7 @@
NSImage *image;
if (size > 0.0) {
- scale = [[[NSScreen screens]
valueForKeyPath:@"@max.backingScaleFactor"] doubleValue];
+ scale = [NSScreen maxBackingScaleFactor];
shadowBlurRadius = round(scale * size / 32.0) / scale;
shadowOffset = -ceil(scale * shadowBlurRadius * 0.75) / scale;
if (NSHeight(bounds) > NSWidth(bounds))
@@ -571,7 +572,7 @@
CGFloat thumbRatio = thumbSize.height / thumbSize.width;
CGFloat dockRatio = NSHeight(dockRect) / NSWidth(dockRect);
CGFloat scaleFactor;
- CGFloat scale = [[[NSScreen screens]
valueForKeyPath:@"@max.backingScaleFactor"] doubleValue];
+ CGFloat scale = [NSScreen maxBackingScaleFactor];
CGFloat shadowRadius = round(scale * fmax(thumbSize.width,
thumbSize.height) / 32.0) / scale;
CGFloat shadowOffset = ceil(0.75 * scale * shadowRadius) / scale;
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