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