aboutsummaryrefslogtreecommitdiff
path: root/AppKit
diff options
context:
space:
mode:
authorGravatar gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2009-11-10 19:00:55 +0000
committerGravatar gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2009-11-10 19:00:55 +0000
commitdd4c1c15b5f4f178f55942ca6ffa63027fcb20df (patch)
tree6ecd50fb6fea1672d5e3a82a8a88803e78e502d4 /AppKit
parente2e723bf10e3ec694df5a44d99f405aff8417489 (diff)
[Author: dmaclach]
Put some better restrictions on the Animations so they don't happen by accident. Imitates the minimize window behaviour. R=thomasvl DELTA=15 (8 added, 0 deleted, 7 changed)
Diffstat (limited to 'AppKit')
-rw-r--r--AppKit/GTMNSAnimation+Duration.h2
-rw-r--r--AppKit/GTMNSAnimation+Duration.m20
2 files changed, 15 insertions, 7 deletions
diff --git a/AppKit/GTMNSAnimation+Duration.h b/AppKit/GTMNSAnimation+Duration.h
index ee4be84..4ed7ef9 100644
--- a/AppKit/GTMNSAnimation+Duration.h
+++ b/AppKit/GTMNSAnimation+Duration.h
@@ -23,6 +23,8 @@
// Given a "normal" duration for an animation, return what it should be based
// on the current system state. For example, holding down the shift and/or
// control keys modifies the normal duration for an animation making it slower.
+// Currently only modifies the duration if the current event is of type
+// NSLeftMouseUp and only the control and/or shift modifiers are down.
NSTimeInterval GTMModifyDurationBasedOnCurrentState(NSTimeInterval duration);
// Categories for changing the duration of an animation based on the current
diff --git a/AppKit/GTMNSAnimation+Duration.m b/AppKit/GTMNSAnimation+Duration.m
index 327a349..884cd32 100644
--- a/AppKit/GTMNSAnimation+Duration.m
+++ b/AppKit/GTMNSAnimation+Duration.m
@@ -20,13 +20,19 @@
NSTimeInterval GTMModifyDurationBasedOnCurrentState(NSTimeInterval duration) {
NSEvent *event = [NSApp currentEvent];
- NSUInteger modifiers = [event modifierFlags];
- if (modifiers & NSShiftKeyMask) {
- duration *= 5.0;
- }
- // These are additive, so shift+control returns 10 * duration.
- if (modifiers & NSControlKeyMask) {
- duration *= 2.0;
+ if ([event type] == NSLeftMouseUp) {
+ NSUInteger modifiers = [event modifierFlags];
+ if (!(modifiers & (NSAlternateKeyMask |
+ NSCommandKeyMask |
+ NSFunctionKeyMask))) {
+ if (modifiers & NSShiftKeyMask) {
+ duration *= 5.0;
+ }
+ // These are additive, so shift+control returns 10 * duration.
+ if (modifiers & NSControlKeyMask) {
+ duration *= 2.0;
+ }
+ }
}
return duration;
}