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
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit