Revision: 15338 http://sourceforge.net/p/skim-app/code/15338 Author: hofman Date: 2025-06-01 16:14:03 +0000 (Sun, 01 Jun 2025) Log Message: ----------- Use separate delegetae methods for entering or exiting fullscreen stylemask
Modified Paths: -------------- trunk/SKMainWindow.h trunk/SKMainWindow.m trunk/SKMainWindowController_FullScreen.m Modified: trunk/SKMainWindow.h =================================================================== --- trunk/SKMainWindow.h 2025-05-31 15:12:55 UTC (rev 15337) +++ trunk/SKMainWindow.h 2025-06-01 16:14:03 UTC (rev 15338) @@ -52,7 +52,8 @@ @protocol SKMainWindowDelegate <NSWindowDelegate> @optional - (void)window:(NSWindow *)window willSendEvent:(NSEvent *)event; -- (void)window:(NSWindow *)window willBecomeFullScreen:(BOOL)fullScreen; +- (void)windowWillEnterFullScreenStyle:(NSWindow *)window; +- (void)windowWillExitFullScreenStyle:(NSWindow *)window; @end @interface SKMainWindow : SKWindow { Modified: trunk/SKMainWindow.m =================================================================== --- trunk/SKMainWindow.m 2025-05-31 15:12:55 UTC (rev 15337) +++ trunk/SKMainWindow.m 2025-06-01 16:14:03 UTC (rev 15338) @@ -90,9 +90,10 @@ } - (void)setStyleMask:(NSWindowStyleMask)styleMask { - if ((styleMask & NSWindowStyleMaskFullScreen) != ([self styleMask] & NSWindowStyleMaskFullScreen) && [[self delegate] respondsToSelector:@selector(window:willBecomeFullScreen:)]) { - [[self delegate] window:self willBecomeFullScreen:0 != (styleMask & NSWindowStyleMaskFullScreen)]; - } + if (0 != (styleMask & NSWindowStyleMaskFullScreen) && 0 == ([self styleMask] & NSWindowStyleMaskFullScreen) && [[self delegate] respondsToSelector:@selector(windowWillEnterFullScreenStyle:)]) + [[self delegate] windowWillEnterFullScreenStyle:self]; + else if (0 == (styleMask & NSWindowStyleMaskFullScreen) && 0 != ([self styleMask] & NSWindowStyleMaskFullScreen) && [[self delegate] respondsToSelector:@selector(windowWillExitFullScreenStyle:)]) + [[self delegate] windowWillExitFullScreenStyle:self]; [super setStyleMask:styleMask]; } Modified: trunk/SKMainWindowController_FullScreen.m =================================================================== --- trunk/SKMainWindowController_FullScreen.m 2025-05-31 15:12:55 UTC (rev 15337) +++ trunk/SKMainWindowController_FullScreen.m 2025-06-01 16:14:03 UTC (rev 15338) @@ -555,32 +555,32 @@ return openWindows; } -- (void)window:(NSWindow *)windoww willBecomeFullScreen:(BOOL)fullScreen { - if (fullScreen) { - if (interactionMode != SKFullScreenMode) { - interactionMode = SKFullScreenMode; - NSColor *backgroundColor = [PDFView defaultFullScreenBackgroundColor]; - [pdfView setBackgroundColor:backgroundColor]; - [secondaryPdfView setBackgroundColor:backgroundColor]; - if ([[pdfView document] isLocked] == NO) { - NSDictionary *fullScreenSetup = [[NSUserDefaults standardUserDefaults] dictionaryForKey:SKDefaultFullScreenPDFDisplaySettingsKey]; - if ([fullScreenSetup count]) - [self applyPDFSettings:fullScreenSetup rewind:YES]; - } +- (void)windowWillEnterFullScreenStyle:(NSWindow *)window { + if (interactionMode != SKFullScreenMode) { + interactionMode = SKFullScreenMode; + NSColor *backgroundColor = [PDFView defaultFullScreenBackgroundColor]; + [pdfView setBackgroundColor:backgroundColor]; + [secondaryPdfView setBackgroundColor:backgroundColor]; + if ([[pdfView document] isLocked] == NO) { + NSDictionary *fullScreenSetup = [[NSUserDefaults standardUserDefaults] dictionaryForKey:SKDefaultFullScreenPDFDisplaySettingsKey]; + if ([fullScreenSetup count]) + [self applyPDFSettings:fullScreenSetup rewind:YES]; } - } else { - if (interactionMode != SKNormalMode) { - interactionMode = SKNormalMode; - NSColor *backgroundColor = [PDFView defaultBackgroundColor]; - [pdfView setBackgroundColor:backgroundColor]; - [secondaryPdfView setBackgroundColor:backgroundColor]; - if ([[[NSUserDefaults standardUserDefaults] dictionaryForKey:SKDefaultFullScreenPDFDisplaySettingsKey] count]) - [self applyPDFSettings:savedNormalSetup rewind:YES]; - } } } -- (void)windowWillEnterFullScreen:(NSNotification *)notification { +- (void)windowWillExitFullScreenStyle:(NSWindow *)window { + if (interactionMode != SKNormalMode) { + interactionMode = SKNormalMode; + NSColor *backgroundColor = [PDFView defaultBackgroundColor]; + [pdfView setBackgroundColor:backgroundColor]; + [secondaryPdfView setBackgroundColor:backgroundColor]; + if ([[[NSUserDefaults standardUserDefaults] dictionaryForKey:SKDefaultFullScreenPDFDisplaySettingsKey] count]) + [self applyPDFSettings:savedNormalSetup rewind:YES]; + } +} + +- (void)windowWillEnterFullScreen:(NSWindow *)window { mwcFlags.isSwitchingFullScreen = 1; if ([[pdfView document] isLocked] == NO || [savedNormalSetup count] == 0) [savedNormalSetup setDictionary:[self currentPDFSettings]]; @@ -619,7 +619,7 @@ [self displayStaticContentInWindow:displayWindow ordered:NSWindowBelow]; [(SKMainWindow *)window setDisableConstrainedFrame:YES]; [window setFrame:frame display:YES]; - [self window:window willBecomeFullScreen:YES]; + [self windowWillEnterFullScreenStyle:window]; setAlphaValueOfTitleBarControls(window, 0.0, NO); [(SKMainWindow *)window setDisableConstrainedFrame:NO]; [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) { @@ -632,7 +632,7 @@ }]; } else { [(SKMainWindow *)window setDisableConstrainedFrame:YES]; - [self window:window willBecomeFullScreen:YES]; + [self windowWillEnterFullScreenStyle:window]; [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) { [context setDuration:duration - 0.02]; if (@available(macOS 12.0, *)) @@ -659,7 +659,7 @@ } - (void)windowDidFailToEnterFullScreen:(NSWindow *)window { - [self window:window willBecomeFullScreen:NO]; + [self windowWillExitFullScreenStyle:window]; if ([[pdfView document] isLocked] == NO || [savedNormalSetup count] < 3) [savedNormalSetup removeAllObjects]; else @@ -745,7 +745,7 @@ } - (void)windowDidFailToExitFullScreen:(NSWindow *)window { - [self window:window willBecomeFullScreen:YES]; + [self windowWillEnterFullScreenStyle:window]; savedNormalWindow = nil; mwcFlags.isSwitchingFullScreen = 0; mwcFlags.wantsPresentationOrFullScreen = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Skim-app-commit mailing list Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit