Revision: 3262
          http://skim-app.svn.sourceforge.net/skim-app/?rev=3262&view=rev
Author:   hofman
Date:     2007-11-25 10:38:32 -0800 (Sun, 25 Nov 2007)

Log Message:
-----------
Restrict note size to square when resizing notes with Shift key.

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

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2007-11-25 15:58:07 UTC (rev 3261)
+++ trunk/SKPDFView.m   2007-11-25 18:38:32 UTC (rev 3262)
@@ -2903,45 +2903,90 @@
             if ((dragMask & BDSKMinYEdgeMask) && (dragMask & BDSKMaxYEdgeMask))
                 dragMask &= relPoint.y <= 0.0 ? ~BDSKMaxYEdgeMask : 
~BDSKMinYEdgeMask;
             
-            if (dragMask & BDSKMaxXEdgeMask) {
-                newBounds.size.width += relPoint.x;
-                if (NSMaxX(newBounds) > NSMaxX(pageBounds)) {
-                    newBounds.size.width = NSMaxX(pageBounds) - 
NSMinX(newBounds);
+            if ([theEvent modifierFlags] & NSShiftKeyMask) {
+                float width = NSWidth(newBounds);
+                float height = NSHeight(newBounds);
+                
+                if (dragMask & BDSKMaxXEdgeMask)
+                    width = fmaxf(8.0, width + relPoint.x);
+                else if (dragMask & BDSKMinXEdgeMask)
+                    width = fmaxf(8.0, width - relPoint.x);
+                if (dragMask & BDSKMaxYEdgeMask)
+                    height = fmaxf(8.0, height + relPoint.y);
+                else if (dragMask & BDSKMinYEdgeMask)
+                    height = fmaxf(8.0, height - relPoint.y);
+                
+                if (dragMask & (BDSKMinXEdgeMask | BDSKMaxXEdgeMask)) {
+                    if (dragMask & (BDSKMinYEdgeMask | BDSKMaxYEdgeMask))
+                        width = height = fmaxf(width, height);
+                    else
+                        height = width;
+                } else {
+                    width = height;
                 }
-                if (NSWidth(newBounds) < 8.0) {
-                    newBounds.size.width = 8.0;
+                
+                if (dragMask & BDSKMinXEdgeMask) {
+                    if (NSMaxX(newBounds) - width < NSMinX(pageBounds))
+                        width = height = fmaxf(8.0, NSMaxX(newBounds) - 
NSMinX(pageBounds));
+                } else {
+                    if (NSMinX(newBounds) + width > NSMaxX(pageBounds))
+                        width = height = fmaxf(8.0, NSMaxX(pageBounds) - 
NSMinX(newBounds));
                 }
-            } else if (dragMask & BDSKMinXEdgeMask) {
-                newBounds.origin.x += relPoint.x;
-                newBounds.size.width -= relPoint.x;
-                if (NSMinX(newBounds) < NSMinX(pageBounds)) {
-                    newBounds.size.width = NSMaxX(newBounds) - 
NSMinX(pageBounds);
-                    newBounds.origin.x = NSMinX(pageBounds);
+                if (dragMask & BDSKMinYEdgeMask) {
+                    if (NSMaxY(newBounds) - height < NSMinY(pageBounds))
+                        width = height = fmaxf(8.0, NSMaxY(newBounds) - 
NSMinY(pageBounds));
+                } else {
+                    if (NSMinY(newBounds) + height > NSMaxY(pageBounds))
+                        width = height = fmaxf(8.0, NSMaxY(pageBounds) - 
NSMinY(newBounds));
                 }
-                if (NSWidth(newBounds) < 8.0) {
-                    newBounds.origin.x = NSMaxX(newBounds) - 8.0;
-                    newBounds.size.width = 8.0;
+                
+                if (dragMask & BDSKMinXEdgeMask)
+                    newBounds.origin.x = NSMaxX(newBounds) - width;
+                if (dragMask & BDSKMinYEdgeMask)
+                    newBounds.origin.y = NSMaxY(newBounds) - height;
+                newBounds.size.width = width;
+                newBounds.size.height = height;
+               
+            } else {
+                if (dragMask & BDSKMaxXEdgeMask) {
+                    newBounds.size.width += relPoint.x;
+                    if (NSMaxX(newBounds) > NSMaxX(pageBounds))
+                        newBounds.size.width = NSMaxX(pageBounds) - 
NSMinX(newBounds);
+                    if (NSWidth(newBounds) < 8.0) {
+                        newBounds.size.width = 8.0;
+                    }
+                } else if (dragMask & BDSKMinXEdgeMask) {
+                    newBounds.origin.x += relPoint.x;
+                    newBounds.size.width -= relPoint.x;
+                    if (NSMinX(newBounds) < NSMinX(pageBounds)) {
+                        newBounds.size.width = NSMaxX(newBounds) - 
NSMinX(pageBounds);
+                        newBounds.origin.x = NSMinX(pageBounds);
+                    }
+                    if (NSWidth(newBounds) < 8.0) {
+                        newBounds.origin.x = NSMaxX(newBounds) - 8.0;
+                        newBounds.size.width = 8.0;
+                    }
                 }
-            }
-            if (dragMask & BDSKMaxYEdgeMask) {
-                newBounds.size.height += relPoint.y;
-                if (NSMaxY(newBounds) > NSMaxY(pageBounds)) {
-                    newBounds.size.height = NSMaxY(pageBounds) - 
NSMinY(newBounds);
+                if (dragMask & BDSKMaxYEdgeMask) {
+                    newBounds.size.height += relPoint.y;
+                    if (NSMaxY(newBounds) > NSMaxY(pageBounds)) {
+                        newBounds.size.height = NSMaxY(pageBounds) - 
NSMinY(newBounds);
+                    }
+                    if (NSHeight(newBounds) < 8.0) {
+                        newBounds.size.height = 8.0;
+                    }
+                } else if (dragMask & BDSKMinYEdgeMask) {
+                    newBounds.origin.y += relPoint.y;
+                    newBounds.size.height -= relPoint.y;
+                    if (NSMinY(newBounds) < NSMinY(pageBounds)) {
+                        newBounds.size.height = NSMaxY(newBounds) - 
NSMinY(pageBounds);
+                        newBounds.origin.y = NSMinY(pageBounds);
+                    }
+                    if (NSHeight(newBounds) < 8.0) {
+                        newBounds.origin.y = NSMaxY(newBounds) - 8.0;
+                        newBounds.size.height = 8.0;
+                    }
                 }
-                if (NSHeight(newBounds) < 8.0) {
-                    newBounds.size.height = 8.0;
-                }
-            } else if (dragMask & BDSKMinYEdgeMask) {
-                newBounds.origin.y += relPoint.y;
-                newBounds.size.height -= relPoint.y;
-                if (NSMinY(newBounds) < NSMinY(pageBounds)) {
-                    newBounds.size.height = NSMaxY(newBounds) - 
NSMinY(pageBounds);
-                    newBounds.origin.y = NSMinY(pageBounds);
-                }
-                if (NSHeight(newBounds) < 8.0) {
-                    newBounds.origin.y = NSMaxY(newBounds) - 8.0;
-                    newBounds.size.height = 8.0;
-                }
             }
             // Keep integer.
             newBounds = NSIntegralRect(newBounds);


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to