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

Reply via email to