aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cocoa/ScintillaView.h2
-rw-r--r--cocoa/ScintillaView.mm19
-rw-r--r--doc/ScintillaHistory.html1
3 files changed, 15 insertions, 7 deletions
diff --git a/cocoa/ScintillaView.h b/cocoa/ScintillaView.h
index bcbd1eea0..638001efd 100644
--- a/cocoa/ScintillaView.h
+++ b/cocoa/ScintillaView.h
@@ -62,6 +62,8 @@ extern NSString *SCIUpdateUINotification;
NSScroller* mHorizontalScroller;
NSScroller* mVerticalScroller;
+ CGFloat zoomDelta;
+
// Area to display additional controls (e.g. zoom info, caret position, status info).
NSView <InfoBarCommunicator>* mInfoBar;
BOOL mInfoBarAtTop;
diff --git a/cocoa/ScintillaView.mm b/cocoa/ScintillaView.mm
index 3cdc612c7..68290f74d 100644
--- a/cocoa/ScintillaView.mm
+++ b/cocoa/ScintillaView.mm
@@ -643,16 +643,21 @@ NSString *SCIUpdateUINotification = @"SCIUpdateUI";
- (void) magnifyWithEvent: (NSEvent *) event
{
#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5
- CGFloat z = [event magnification];
-
- // Zoom out or in 1pt depending on sign of magnification event value (0.0 = no change)
- if (z <= 0.0)
- [ScintillaView directCall: self message: SCI_ZOOMOUT wParam: 0 lParam: 0];
- else if (z >= 0.0)
- [ScintillaView directCall: self message: SCI_ZOOMIN wParam: 0 lParam: 0];
+ zoomDelta += event.magnification * 10.0;
+
+ if (fabsf(zoomDelta)>=1.0) {
+ long zoomFactor = [self getGeneralProperty: SCI_GETZOOM] + zoomDelta;
+ [self setGeneralProperty: SCI_SETZOOM parameter: zoomFactor value:0];
+ zoomDelta = 0.0;
+ }
#endif
}
+- (void) beginGestureWithEvent: (NSEvent *) event
+{
+ zoomDelta = 0.0;
+}
+
//--------------------------------------------------------------------------------------------------
/**
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html
index 49aaff9dc..fe4bc838c 100644
--- a/doc/ScintillaHistory.html
+++ b/doc/ScintillaHistory.html
@@ -409,6 +409,7 @@
<td>Denis Shelomovskij</td>
<td>darmar</td>
<td>John Vella</td>
+ <td>Chinh Nguyen</td>
</tr>
</table>
<p>