Revision: 16624
          http://sourceforge.net/p/skim-app/code/16624
Author:   hofman
Date:     2026-10-06 22:14:42 +0000 (Tue, 06 Oct 2026)
Log Message:
-----------
draw straight path elements as lines rather than curves

Modified Paths:
--------------
    trunk/SKPDFView.m
    trunk/SKPresentationView.m
    trunk/SkimNotes/PDFAnnotation_SKNExtensions.m

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2026-10-06 21:56:43 UTC (rev 16623)
+++ trunk/SKPDFView.m   2026-10-06 22:14:42 UTC (rev 16624)
@@ -4320,13 +4320,14 @@
                 if (NSCurveToBezierPathElement == [bezierPath 
elementAtIndex:eltCount - 1])
                     points[0] = prevPoint;
                 [bezierPath setAssociatedPoints:points atIndex:eltCount - 1];
+            } else if (bezierPath == nil) {
+                bezierPath = [NSBezierPath bezierPath];
+                [bezierPath moveToPoint:prevPoint];
+                [bezierPath lineToPoint:point];
+            } else if (wantsBreak && NO == NSEqualPoints(prevPoint, 
oldPrevPoint)) {
+                [bezierPath lineToPoint:prevPoint];
+                [bezierPath lineToPoint:point];
             } else {
-                if (bezierPath == nil) {
-                    bezierPath = [NSBezierPath bezierPath];
-                    [bezierPath moveToPoint:prevPoint];
-                } else if (wantsBreak && NO == NSEqualPoints(prevPoint, 
oldPrevPoint)) {
-                    [PDFAnnotation addPoint:prevPoint 
toSkimNotesPath:bezierPath];
-                }
                 [PDFAnnotation addPoint:point toSkimNotesPath:bezierPath];
             }
             

Modified: trunk/SKPresentationView.m
===================================================================
--- trunk/SKPresentationView.m  2026-10-06 21:56:43 UTC (rev 16623)
+++ trunk/SKPresentationView.m  2026-10-06 22:14:42 UTC (rev 16624)
@@ -1013,13 +1013,14 @@
                 if (NSCurveToBezierPathElement == [bezierPath 
elementAtIndex:eltCount - 1])
                     points[0] = prevPoint;
                 [bezierPath setAssociatedPoints:points atIndex:eltCount - 1];
+            } else if (bezierPath == nil) {
+                bezierPath = [NSBezierPath bezierPath];
+                [bezierPath moveToPoint:prevPoint];
+                [bezierPath lineToPoint:point];
+            } else if (wantsBreak && NO == NSEqualPoints(prevPoint, 
oldPrevPoint)) {
+                [bezierPath lineToPoint:prevPoint];
+                [bezierPath lineToPoint:point];
             } else {
-                if (bezierPath == nil) {
-                    bezierPath = [NSBezierPath bezierPath];
-                    [bezierPath moveToPoint:prevPoint];
-                } else if (wantsBreak && NO == NSEqualPoints(prevPoint, 
oldPrevPoint)) {
-                    [PDFAnnotation addPoint:prevPoint 
toSkimNotesPath:bezierPath];
-                }
                 [PDFAnnotation addPoint:point toSkimNotesPath:bezierPath];
             }
             

Modified: trunk/SkimNotes/PDFAnnotation_SKNExtensions.m
===================================================================
--- trunk/SkimNotes/PDFAnnotation_SKNExtensions.m       2026-10-06 21:56:43 UTC 
(rev 16623)
+++ trunk/SkimNotes/PDFAnnotation_SKNExtensions.m       2026-10-06 22:14:42 UTC 
(rev 16624)
@@ -1036,6 +1036,7 @@
     NSUInteger i, iMax = [points count];
     PDFPoint point, controlPoint1, diff;
     CGFloat d2;
+    BOOL wasEdge = YES;
     
     for (i = 0; i < iMax; i++) {
         id pointValue = [points objectAtIndex:i];
@@ -1071,15 +1072,15 @@
             }
             
 #ifdef PDFKIT_PLATFORM_IOS
-            if (d1 > 0.0)
+            if (d1 <= 0.0 || (d2 <= 0 && wasEdge))
+                [path addLineToPoint:prevPoint];
+            else
                 [path addCurveToPoint:prevPoint controlPoint1:controlPoint1 
controlPoint2:controlPoint2];
+#else
+            if (d1 <= 0.0 || (d2 <= 0 && wasEdge))
+                [path lineToPoint:prevPoint];
             else
-                [path addLineToPoint:prevPoint];
-#else
-            if (d1 > 0.0)
                 [path curveToPoint:prevPoint controlPoint1:controlPoint1 
controlPoint2:controlPoint2];
-            else
-                [path lineToPoint:prevPoint];
 #endif
             
             controlPoint1 = prevPoint;
@@ -1087,16 +1088,18 @@
                 controlPoint1.x += diff1.x / (3.0 * (d0 + d1));
                 controlPoint1.y += diff1.y / (3.0 * (d0 + d1));
             }
+            
+            wasEdge = d1 <= 0.0;
         }
     }
     
 #ifdef PDFKIT_PLATFORM_IOS
-    if (iMax == 2 || d2 <= 0.0)
+    if (iMax == 2 || d2 <= 0.0 || wasEdge)
         [path addLineToPoint:point];
     else if (iMax > 2)
         [path addCurveToPoint:point controlPoint1:controlPoint1 
controlPoint2:point];
 #else
-    if (iMax == 2 || d2 <= 0.0)
+    if (iMax == 2 || d2 <= 0.0 || wasEdge)
         [path lineToPoint:point];
     else if (iMax > 2)
         [path curveToPoint:point controlPoint1:controlPoint1 
controlPoint2:point];

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