Revision: 15741
          http://sourceforge.net/p/skim-app/code/15741
Author:   hofman
Date:     2025-11-01 16:33:09 +0000 (Sat, 01 Nov 2025)
Log Message:
-----------
calculate page transform in place

Modified Paths:
--------------
    trunk/PDFPage_SKExtensions.h
    trunk/PDFPage_SKExtensions.m
    trunk/SKImageToolTipContext.m

Modified: trunk/PDFPage_SKExtensions.h
===================================================================
--- trunk/PDFPage_SKExtensions.h        2025-10-31 23:01:45 UTC (rev 15740)
+++ trunk/PDFPage_SKExtensions.h        2025-11-01 16:33:09 UTC (rev 15741)
@@ -91,8 +91,6 @@
 
 @property (nonatomic, readonly, getter=isEditable) BOOL editable;
 
-- (NSAffineTransform *)affineTransformForBox:(PDFDisplayBox)box;
-
 - (CGFloat)sortOrderForBounds:(NSRect)bounds;
 
 @property (nonatomic, nullable, readonly) NSScriptObjectSpecifier 
*objectSpecifier;

Modified: trunk/PDFPage_SKExtensions.m
===================================================================
--- trunk/PDFPage_SKExtensions.m        2025-10-31 23:01:45 UTC (rev 15740)
+++ trunk/PDFPage_SKExtensions.m        2025-11-01 16:33:09 UTC (rev 15741)
@@ -280,7 +280,15 @@
     NSRect bounds = [self boundsForBox:box];
     
     if (NSEqualRects(rect, NSZeroRect) == NO && NSEqualRects(rect, bounds) == 
NO) {
-        NSAffineTransform *transform = [self affineTransformForBox:box];
+        NSAffineTransform *transform = [NSAffineTransform transform];
+        [transform rotateByDegrees:-[self rotation]];
+        switch ([self rotation]) {
+            case 0:   [transform translateXBy:-NSMinX(bounds) 
yBy:-NSMinY(bounds)]; break;
+            case 90:  [transform translateXBy:-NSMaxX(bounds) 
yBy:-NSMinY(bounds)]; break;
+            case 180: [transform translateXBy:-NSMaxX(bounds) 
yBy:-NSMaxY(bounds)]; break;
+            case 270: [transform translateXBy:-NSMinX(bounds) 
yBy:-NSMaxY(bounds)]; break;
+        }
+        
         NSRect sourceRect = SKTransformRect(transform, rect);
         
         imageRep1 = [NSBitmapImageRep imageRepWithSize:sourceRect.size 
scale:1.0 drawingHandler:^(NSRect dstRect){
@@ -521,19 +529,6 @@
     return NO;
 }
 
-- (NSAffineTransform *)affineTransformForBox:(PDFDisplayBox)box {
-    NSRect bounds = [self boundsForBox:box];
-    NSAffineTransform *transform = [NSAffineTransform transform];
-    [transform rotateByDegrees:-[self rotation]];
-    switch ([self rotation]) {
-        case 0:   [transform translateXBy:-NSMinX(bounds) 
yBy:-NSMinY(bounds)]; break;
-        case 90:  [transform translateXBy:-NSMaxX(bounds) 
yBy:-NSMinY(bounds)]; break;
-        case 180: [transform translateXBy:-NSMaxX(bounds) 
yBy:-NSMaxY(bounds)]; break;
-        case 270: [transform translateXBy:-NSMinX(bounds) 
yBy:-NSMaxY(bounds)]; break;
-    }
-    return transform;
-}
-
 #pragma mark Scripting support
 
 - (NSScriptObjectSpecifier *)objectSpecifier {

Modified: trunk/SKImageToolTipContext.m
===================================================================
--- trunk/SKImageToolTipContext.m       2025-10-31 23:01:45 UTC (rev 15740)
+++ trunk/SKImageToolTipContext.m       2025-11-01 16:33:09 UTC (rev 15741)
@@ -122,11 +122,14 @@
     NSRect sourceRect = NSZeroRect;
     NSPoint point = [[self effectiveDestinationForView:nil] point];
     NSRect bounds = [page boundsForBox:kPDFDisplayBoxCropBox];
-    NSAffineTransform *transform = [page 
affineTransformForBox:kPDFDisplayBoxCropBox];
-    if (fabs(scale - 1.0) > 0.0) {
-        NSAffineTransform *scaleTransform = [NSAffineTransform transform];
-        [scaleTransform scaleBy:scale];
-        [transform appendTransform:scaleTransform];
+    NSAffineTransform *transform = [NSAffineTransform transform];
+    [transform scaleBy:scale];
+    [transform rotateByDegrees:-[page rotation]];
+    switch ([page rotation]) {
+        case 0:   [transform translateXBy:-NSMinX(bounds) 
yBy:-NSMinY(bounds)]; break;
+        case 90:  [transform translateXBy:-NSMaxX(bounds) 
yBy:-NSMinY(bounds)]; break;
+        case 180: [transform translateXBy:-NSMaxX(bounds) 
yBy:-NSMaxY(bounds)]; break;
+        case 270: [transform translateXBy:-NSMinX(bounds) 
yBy:-NSMaxY(bounds)]; break;
     }
     
     sourceRect.size.width = [[NSUserDefaults standardUserDefaults] 
doubleForKey:SKToolTipWidthKey];

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