Commit d521d1d3 authored by Pierre d'Herbemont's avatar Pierre d'Herbemont

macosx: Make sure makeKeyAndOrderFront doesn't hide and then display the...

macosx: Make sure makeKeyAndOrderFront doesn't hide and then display the window if it was visible and not faded.
parent 113ee07f
...@@ -49,6 +49,8 @@ ...@@ -49,6 +49,8 @@
/* set to yes if we are fullscreen and all animations are over */ /* set to yes if we are fullscreen and all animations are over */
BOOL b_fullscreen; BOOL b_fullscreen;
NSRecursiveLock * o_animation_lock; NSRecursiveLock * o_animation_lock;
BOOL b_window_is_invisible;
} }
- (void)controlTintChanged; - (void)controlTintChanged;
......
...@@ -72,6 +72,7 @@ ...@@ -72,6 +72,7 @@
/* Make sure setVisible: returns NO */ /* Make sure setVisible: returns NO */
[self orderOut:self]; [self orderOut:self];
b_window_is_invisible = YES;
} }
- (void)controlTintChanged - (void)controlTintChanged
...@@ -399,6 +400,10 @@ ...@@ -399,6 +400,10 @@
/* Will release the lock */ /* Will release the lock */
[self hasEndedFullscreen]; [self hasEndedFullscreen];
/* Our window is hidden, and might be faded. We need to workaround that, so note it
* here */
b_window_is_invisible = YES;
CGDisplayFade( token, 0.5, kCGDisplayBlendSolidColor, kCGDisplayBlendNormal, 0, 0, 0, NO ); CGDisplayFade( token, 0.5, kCGDisplayBlendSolidColor, kCGDisplayBlendNormal, 0, 0, 0, NO );
CGReleaseDisplayFadeReservation( token); CGReleaseDisplayFadeReservation( token);
return; return;
...@@ -517,6 +522,13 @@ ...@@ -517,6 +522,13 @@
* having a window that is faded. We can't have it fade in unless we * having a window that is faded. We can't have it fade in unless we
* animate again. */ * animate again. */
if(!b_window_is_invisible)
{
/* Make sure we don't do it too much */
[super makeKeyAndOrderFront: sender];
return;
}
[super setAlphaValue:0.0f]; [super setAlphaValue:0.0f];
[super makeKeyAndOrderFront: sender]; [super makeKeyAndOrderFront: sender];
...@@ -531,6 +543,8 @@ ...@@ -531,6 +543,8 @@
[anim setFrameRate: 30]; [anim setFrameRate: 30];
[anim startAnimation]; [anim startAnimation];
b_window_is_invisible = NO;
/* fullscreenAnimation will be unlocked when animation ends */ /* fullscreenAnimation will be unlocked when animation ends */
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment