Revision: 13366
http://sourceforge.net/p/skim-app/code/13366
Author: hofman
Date: 2023-03-15 16:58:43 +0000 (Wed, 15 Mar 2023)
Log Message:
-----------
separate animation groups for fade and resize animations for full screen
Modified Paths:
--------------
trunk/SKMainWindowController_FullScreen.m
Modified: trunk/SKMainWindowController_FullScreen.m
===================================================================
--- trunk/SKMainWindowController_FullScreen.m 2023-03-15 15:50:39 UTC (rev
13365)
+++ trunk/SKMainWindowController_FullScreen.m 2023-03-15 16:58:43 UTC (rev
13366)
@@ -584,9 +584,8 @@
if (fullScreenToolbarOffset <= 0.0 && autoHideToolbarInFullScreen == NO &&
[[mainWindow toolbar] isVisible])
fullScreenToolbarOffset = toolbarViewOffset(mainWindow);
NSRect frame = SKShrinkRect([[window screen] frame],
-fullScreenOffset(window), NSMaxYEdge);
- BOOL fade = animationWindow != nil;
[(SKMainWindow *)window setDisableConstrainedFrame:YES];
- if (fade) {
+ if (animationWindow != nil) {
[(SKAnimatedBorderlessWindow *)animationWindow
setBackgroundImage:[(SKMainWindow *)window windowImage]];
[animationWindow setHasShadow:YES];
[animationWindow orderWindow:NSWindowBelow relativeTo:window];
@@ -595,26 +594,28 @@
for (NSView *view in [[[window
standardWindowButton:NSWindowCloseButton] superview] subviews])
if ([view isKindOfClass:[NSControl class]])
[view setAlphaValue:0.0];
- }
- [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
- [context setDuration:duration - 0.01];
- if (fade) {
+ [(SKMainWindow *)window setDisableConstrainedFrame:NO];
+ [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
+ [context setDuration:duration];
[[window animator] setAlphaValue:1.0];
[[animationWindow animator] setAlphaValue:0.0];
- } else {
+ }
+ completionHandler:^{
+ [animationWindow orderOut:nil];
+ SKDESTROY(animationWindow);
+ }];
+ } else {
+ [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
+ [context setDuration:duration - 0.02];
[[window animator] setFrame:frame display:YES];
for (NSView *view in [[[window
standardWindowButton:NSWindowCloseButton] superview] subviews])
if ([view isKindOfClass:[NSControl class]])
[[view animator] setAlphaValue:0.0];
}
- }
- completionHandler:^{
- [(SKMainWindow *)window setDisableConstrainedFrame:NO];
- if (fade) {
- [animationWindow orderOut:nil];
- SKDESTROY(animationWindow);
- }
- }];
+ completionHandler:^{
+ [(SKMainWindow *)window setDisableConstrainedFrame:NO];
+ }];
+ }
}
- (void)windowDidEnterFullScreen:(NSNotification *)notification {
@@ -677,44 +678,43 @@
}
- (void)window:(NSWindow *)window
startCustomAnimationToExitFullScreenWithDuration:(NSTimeInterval)duration {
- NSString *frameString = [savedNormalSetup
objectForKey:MAINWINDOWFRAME_KEY];
- NSRect frame = NSRectFromString(frameString);
- NSRect startFrame = [window frame];
- BOOL fade = animationWindow != nil;
- [(SKMainWindow *)window setDisableConstrainedFrame:YES];
- [window setStyleMask:[window styleMask] & ~NSWindowStyleMaskFullScreen];
- for (NSView *view in [[[window standardWindowButton:NSWindowCloseButton]
superview] subviews])
- if ([view isKindOfClass:[NSControl class]])
- [view setAlphaValue:0.0];
- [window setFrame:SKShrinkRect(startFrame, -fullScreenOffset(window),
NSMaxYEdge) display:YES];
- [window setLevel:NSStatusWindowLevel];
- if (fade) {
+ NSRect frame = NSRectFromString([savedNormalSetup
objectForKey:MAINWINDOWFRAME_KEY]);
+ if (animationWindow != nil) {
[(SKAnimatedBorderlessWindow *)animationWindow
setBackgroundImage:[(SKMainWindow *)window windowImage]];
[animationWindow orderWindow:NSWindowBelow relativeTo:window];
[window setAlphaValue:0.0];
+ [window setStyleMask:[window styleMask] &
~NSWindowStyleMaskFullScreen];
[window setFrame:frame display:YES];
+ [window setLevel:NSNormalWindowLevel];
+ [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
+ [context setDuration:duration];
+ [[window animator] setAlphaValue:1.0];
+ [[animationWindow animator] setAlphaValue:0.0];
+ }
+ completionHandler:^{
+ [animationWindow orderOut:nil];
+ SKDESTROY(animationWindow);
+ }];
+ } else {
+ [(SKMainWindow *)window setDisableConstrainedFrame:YES];
+ [window setStyleMask:[window styleMask] &
~NSWindowStyleMaskFullScreen];
for (NSView *view in [[[window
standardWindowButton:NSWindowCloseButton] superview] subviews])
if ([view isKindOfClass:[NSControl class]])
- [view setAlphaValue:1.0];
- }
- [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
- [context setDuration:duration - 0.01];
- if (fade) {
- [[window animator] setAlphaValue:1.0];
- [[animationWindow animator] setAlphaValue:0.0];
- } else {
+ [view setAlphaValue:0.0];
+ [window setFrame:SKShrinkRect([[window screen] frame],
-fullScreenOffset(window), NSMaxYEdge) display:YES];
+ [window setLevel:NSStatusWindowLevel];
+ [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
+ [context setDuration:duration];
[[window animator] setFrame:frame display:YES];
for (NSView *view in [[[window
standardWindowButton:NSWindowCloseButton] superview] subviews])
if ([view isKindOfClass:[NSControl class]])
[[view animator] setAlphaValue:1.0];
}
- }
- completionHandler:^{
- [(SKMainWindow *)window setDisableConstrainedFrame:NO];
- [window setLevel:NSNormalWindowLevel];
- [animationWindow orderOut:nil];
- SKDESTROY(animationWindow);
- }];
+ completionHandler:^{
+ [(SKMainWindow *)window setDisableConstrainedFrame:NO];
+ [window setLevel:NSNormalWindowLevel];
+ }];
+ }
}
- (void)windowDidExitFullScreen:(NSNotification *)notification {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit