aboutsummaryrefslogtreecommitdiffstats
path: root/Source/YRKSpinningProgressIndicator.m
diff options
context:
space:
mode:
authorrowanbeentje <rowan@beent.je>2010-07-31 22:21:00 +0000
committerrowanbeentje <rowan@beent.je>2010-07-31 22:21:00 +0000
commitaeb89462c557f2b9f79c070b7ce30fa68f63faf7 (patch)
tree9757ee6b55819126ccc3e481050597cbb3db1a25 /Source/YRKSpinningProgressIndicator.m
parent3755c18f7b0c572c2205011d7a1d519c36fa2ef0 (diff)
downloadsequelpro-aeb89462c557f2b9f79c070b7ce30fa68f63faf7.tar.gz
sequelpro-aeb89462c557f2b9f79c070b7ce30fa68f63faf7.tar.bz2
sequelpro-aeb89462c557f2b9f79c070b7ce30fa68f63faf7.zip
- Replace progress indicator CoreAnimation drawing with manual shadow/fade code; this addresses hangs (see Issue #6677) and also prevents triggering the discrete graphics chip on newer MacBook Pros.
- Update localisable strings
Diffstat (limited to 'Source/YRKSpinningProgressIndicator.m')
-rw-r--r--Source/YRKSpinningProgressIndicator.m24
1 files changed, 21 insertions, 3 deletions
diff --git a/Source/YRKSpinningProgressIndicator.m b/Source/YRKSpinningProgressIndicator.m
index 4872b201..b6f3c0ac 100644
--- a/Source/YRKSpinningProgressIndicator.m
+++ b/Source/YRKSpinningProgressIndicator.m
@@ -56,6 +56,7 @@
_currentValue = 0.0;
_maxValue = 100.0;
_usesThreadedAnimation = NO;
+ _shadow = nil;
}
return self;
}
@@ -63,6 +64,7 @@
- (void) dealloc {
if (_foreColor) [_foreColor release];
if (_backColor) [_backColor release];
+ if (_shadow) [_shadow release];
if (_isAnimating) [self stopAnimation:self];
[super dealloc];
@@ -94,15 +96,17 @@
else
maxSize = size.width;
+ CGContextRef currentContext = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];
+ [NSGraphicsContext saveGraphicsState];
+
+ if (_shadow) [_shadow set];
+
// fill the background, if set
if(_drawBackground) {
[_backColor set];
[NSBezierPath fillRect:[self bounds]];
}
- CGContextRef currentContext = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];
- [NSGraphicsContext saveGraphicsState];
-
// Move the CTM so 0,0 is at the center of our bounds
CGContextTranslateCTM(currentContext,[self bounds].size.width/2,[self bounds].size.height/2);
@@ -313,6 +317,20 @@
[self setNeedsDisplay:YES];
}
+- (NSShadow *)shadow
+{
+ return [[_shadow retain] autorelease];
+}
+
+- (void)setShadow:(NSShadow *)value
+{
+ if (_shadow != value) {
+ [_shadow release];
+ _shadow = [value copy];
+ [self setNeedsDisplay:YES];
+ }
+}
+
- (BOOL)isIndeterminate
{
return _isIndeterminate;