|
@@ -1275,7 +1275,15 @@ static inline CPDFAreaOfInterest CAreaOfInterestForResizeHandle(CRectEdges mask,
|
|
|
CPDFPage *page = [self pageAndPoint:&point forEvent:theEvent nearest:YES];
|
|
|
|
|
|
CGFloat scan = self.scaleFactor;
|
|
|
- scan /= 1.25;
|
|
|
+ if (0.25 <= scan && scan <= 3.0) {
|
|
|
+ scan /= 1.25;
|
|
|
+ } else if (3.01 <= scan && scan <= 10.0) {
|
|
|
+ scan /= 1.40;
|
|
|
+ } else if (10.01 <= scan && scan <= 100.0) {
|
|
|
+ scan /= 2.0;
|
|
|
+ } else {
|
|
|
+ scan /= 1.25;
|
|
|
+ }
|
|
|
[self setScaleFactor:scan];
|
|
|
[self goToRect:CGRectMake(point.x, point.y, 2, 2) onPage:page animated:YES];
|
|
|
break;
|
|
@@ -1362,6 +1370,22 @@ static inline CPDFAreaOfInterest CAreaOfInterestForResizeHandle(CRectEdges mask,
|
|
|
|
|
|
if (dragged && NSIsEmptyRect(selRect) == NO) {
|
|
|
[self zoomToRect:rect onPage:page];
|
|
|
+ } else {
|
|
|
+ NSPoint point = CGPointZero;
|
|
|
+ CPDFPage *page = [self pageAndPoint:&point forEvent:theEvent nearest:YES];
|
|
|
+
|
|
|
+ CGFloat scan = self.scaleFactor;
|
|
|
+ if (0.25 <= scan && scan <= 3.0) {
|
|
|
+ scan *= 1.25;
|
|
|
+ } else if (3.01 <= scan && scan <= 10.0) {
|
|
|
+ scan *= 1.40;
|
|
|
+ } else if (10.01 <= scan && scan <= 100.0) {
|
|
|
+ scan *= 2.0;
|
|
|
+ } else {
|
|
|
+ scan *= 1.25;
|
|
|
+ }
|
|
|
+ [self setScaleFactor:scan];
|
|
|
+ [self goToRect:CGRectMake(point.x, point.y, 2, 2) onPage:page animated:YES];
|
|
|
}
|
|
|
}
|
|
|
|