Revision: 14452
          http://sourceforge.net/p/skim-app/code/14452
Author:   hofman
Date:     2024-09-05 21:43:37 +0000 (Thu, 05 Sep 2024)
Log Message:
-----------
always represent real point and real rectangle scripting types with floating 
point values

Modified Paths:
--------------
    trunk/NSData_SKExtensions.m

Modified: trunk/NSData_SKExtensions.m
===================================================================
--- trunk/NSData_SKExtensions.m 2024-09-01 22:49:21 UTC (rev 14451)
+++ trunk/NSData_SKExtensions.m 2024-09-05 21:43:37 UTC (rev 14452)
@@ -186,14 +186,10 @@
 }
 
 + (NSData *)dataWithPointAsNSPoint:(NSPoint)point {
-    if (floor(point.x) >= point.x && floor(point.y) >= point.y)
-        return [self dataWithPointAsQDPoint:point];
     return [self dataWithBytes:&point length:sizeof(NSPoint)];
 }
 
 + (NSData *)dataWithRectAsNSRect:(NSRect)rect {
-    if (floor(NSMinX(rect)) >= NSMinX(rect) && floor(NSMinY(rect)) >= 
NSMinY(rect) && floor(NSMaxX(rect)) >= NSMaxX(rect) && floor(NSMaxY(rect)) >= 
NSMaxY(rect))
-        return [self dataWithRectAsQDRect:rect];
     return [self dataWithBytes:&rect length:sizeof(NSRect)];
 }
 
@@ -220,6 +216,9 @@
     if ([self length] == sizeof(NSPoint)) {
         const NSPoint *nsPoint = (const NSPoint *)[self bytes];
         point = *nsPoint;
+    } else if ([self length] == sizeof(Point)) {
+        const Point *qdPoint = (const Point *)[self bytes];
+        point = SKNSPointFromQDPoint(*qdPoint);
     }
     return point;
 }
@@ -229,6 +228,9 @@
     if ([self length] == sizeof(NSRect)) {
         const NSRect *nsRect = (const NSRect *)[self bytes];
         rect = *nsRect;
+    } else if ([self length] == sizeof(Rect)) {
+        const Rect *qdRect = (const Rect *)[self bytes];
+        rect = SKNSRectFromQDRect(*qdRect);
     }
     return rect;
 }
@@ -266,27 +268,19 @@
         }
     } else {
         NSData *data = [descriptor data];
-        if ([data length] == sizeof(NSPoint) || [data length] == sizeof(Point))
+        if ([data length] == sizeof(NSPoint))
             return data;
+        if ([data length] == sizeof(Point))
+            point = [data pointValueAsQDPoint];
     }
     return [NSData dataWithPointAsNSPoint:point];
 }
 
 - (NSAppleEventDescriptor *)scriptingRealPointDescriptor {
-    NSAppleEventDescriptor *descriptor;
-    if ([self length] == sizeof(Point)) {
-        descriptor = [NSAppleEventDescriptor 
descriptorWithDescriptorType:typeQDPoint data:self];
-    } else {
-        NSPoint point = [self pointValueAsNSPoint];
-        if (floor(point.x) >= point.x && floor(point.y) >= point.y) {
-            Point qdPoint = SKQDPointFromNSPoint(point);
-            descriptor = [NSAppleEventDescriptor 
descriptorWithDescriptorType:typeQDPoint bytes:&qdPoint length:sizeof(Point)];
-        } else {
-            descriptor = [NSAppleEventDescriptor listDescriptor];
-            [descriptor insertDescriptor:[NSAppleEventDescriptor 
descriptorWithDouble:point.x] atIndex:1];
-            [descriptor insertDescriptor:[NSAppleEventDescriptor 
descriptorWithDouble:point.y] atIndex:2];
-        }
-    }
+    NSPoint point = [self pointValueAsNSPoint];
+    NSAppleEventDescriptor *descriptor = [NSAppleEventDescriptor 
listDescriptor];
+    [descriptor insertDescriptor:[NSAppleEventDescriptor 
descriptorWithDouble:point.x] atIndex:1];
+    [descriptor insertDescriptor:[NSAppleEventDescriptor 
descriptorWithDouble:point.y] atIndex:2];
     return descriptor;
 }
 
@@ -301,29 +295,21 @@
         }
     } else {
         NSData *data = [descriptor data];
-        if ([data length] == sizeof(NSRect) || [data length] == sizeof(Rect))
+        if ([data length] == sizeof(NSRect))
             return data;
+        if ([data length] == sizeof(Rect))
+            rect = [data rectValueAsQDRect];
     }
     return [NSData dataWithRectAsNSRect:rect];
 }
 
 - (NSAppleEventDescriptor *)scriptingRealRectangleDescriptor {
-    NSAppleEventDescriptor *descriptor;
-    if ([self length] == sizeof(Rect)) {
-        descriptor = [NSAppleEventDescriptor 
descriptorWithDescriptorType:typeQDRectangle data:self];
-    } else {
-        NSRect rect = [self rectValueAsNSRect];
-        if (floor(NSMinX(rect)) >= NSMinX(rect) && floor(NSMinY(rect)) >= 
NSMinY(rect) && floor(NSMaxX(rect)) >= NSMaxX(rect) && floor(NSMaxY(rect)) >= 
NSMaxY(rect)) {
-            Rect qdRect = SKQDRectFromNSRect(rect);
-            descriptor = [NSAppleEventDescriptor 
descriptorWithDescriptorType:typeQDRectangle bytes:&qdRect length:sizeof(Rect)];
-        } else {
-            descriptor = [NSAppleEventDescriptor listDescriptor];
-            [descriptor insertDescriptor:[NSAppleEventDescriptor 
descriptorWithDouble:NSMinX(rect)] atIndex:1];
-            [descriptor insertDescriptor:[NSAppleEventDescriptor 
descriptorWithDouble:NSMaxY(rect)] atIndex:2];
-            [descriptor insertDescriptor:[NSAppleEventDescriptor 
descriptorWithDouble:NSMaxX(rect)] atIndex:3];
-            [descriptor insertDescriptor:[NSAppleEventDescriptor 
descriptorWithDouble:NSMinY(rect)] atIndex:4];
-        }
-    }
+    NSRect rect = [self rectValueAsNSRect];
+    NSAppleEventDescriptor *descriptor = [NSAppleEventDescriptor 
listDescriptor];
+    [descriptor insertDescriptor:[NSAppleEventDescriptor 
descriptorWithDouble:NSMinX(rect)] atIndex:1];
+    [descriptor insertDescriptor:[NSAppleEventDescriptor 
descriptorWithDouble:NSMaxY(rect)] atIndex:2];
+    [descriptor insertDescriptor:[NSAppleEventDescriptor 
descriptorWithDouble:NSMaxX(rect)] atIndex:3];
+    [descriptor insertDescriptor:[NSAppleEventDescriptor 
descriptorWithDouble:NSMinY(rect)] atIndex:4];
     return descriptor;
 }
 

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