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