Revision: 15300
http://sourceforge.net/p/skim-app/code/15300
Author: hofman
Date: 2025-05-26 16:42:54 +0000 (Mon, 26 May 2025)
Log Message:
-----------
Avoid using mainWindow outside presentation mode
Modified Paths:
--------------
trunk/SKMainWindowController.m
trunk/SKMainWindowController_FullScreen.m
trunk/SKMainWindowController_UI.m
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2025-05-26 15:59:32 UTC (rev 15299)
+++ trunk/SKMainWindowController.m 2025-05-26 16:42:54 UTC (rev 15300)
@@ -562,8 +562,12 @@
if ([self interactionMode] != SKFullScreenMode) {
NSString *rectString = [setup objectForKey:MAINWINDOWFRAME_KEY];
- if (rectString)
- [mainWindow setFrame:NSRectFromString(rectString)
display:[mainWindow isVisible]];
+ if (rectString) {
+ if ([self interactionMode] == SKPresentationMode)
+ [mainWindow setFrame:NSRectFromString(rectString)
display:NO];
+ else
+ [[self window] setFrame:NSRectFromString(rectString)
display:YES];
+ }
}
NSNumber *leftWidth = [setup objectForKey:LEFTSIDEPANEWIDTH_KEY];
@@ -599,7 +603,10 @@
SKDestination dest = [pdfView currentDestinationRotated:&rotated];
NSArray *cropBoxes = [self changedCropBoxes];
- [setup setObject:NSStringFromRect([mainWindow frame])
forKey:MAINWINDOWFRAME_KEY];
+ if ([self interactionMode] == SKPresentationMode)
+ [setup setObject:NSStringFromRect([mainWindow frame])
forKey:MAINWINDOWFRAME_KEY];
+ else
+ [setup setObject:NSStringFromRect([[self window] frame])
forKey:MAINWINDOWFRAME_KEY];
[setup setObject:[NSNumber numberWithDouble:[self leftSideWidth]]
forKey:LEFTSIDEPANEWIDTH_KEY];
[setup setObject:[NSNumber numberWithDouble:[self rightSideWidth]]
forKey:RIGHTSIDEPANEWIDTH_KEY];
[setup setObject:[NSNumber numberWithUnsignedInteger:dest.pageIndex]
forKey:PAGEINDEX_KEY];
@@ -1665,7 +1672,7 @@
if ([NSView shouldShowFadeAnimation] == NO)
animate = NO;
- BOOL isMainWindow = [overviewContentView window] == mainWindow;
+ BOOL isMainWindow = 0 != ([[overviewContentView window] styleMask] &
NSWindowStyleMaskTitled);
NSView *newView = isMainWindow ? splitView : presentationView;
NSView *newKeyView = isMainWindow ? pdfView : presentationView;
NSView *contentView = [overviewContentView superview];
@@ -1673,7 +1680,7 @@
NSArray *constraints = @[
[[newView leadingAnchor] constraintEqualToAnchor:[contentView
leadingAnchor]],
[[contentView trailingAnchor] constraintEqualToAnchor:[newView
trailingAnchor]],
- [[newView topAnchor]
constraintEqualToAnchor:[(mwcFlags.fullSizeContent || isMainWindow == NO ?
contentView : [mainWindow contentLayoutGuide]) topAnchor]],
+ [[newView topAnchor]
constraintEqualToAnchor:[(mwcFlags.fullSizeContent || isMainWindow == NO ?
contentView : [[contentView window] contentLayoutGuide]) topAnchor]],
[(hasStatus ? [statusBar topAnchor] : [contentView bottomAnchor])
constraintEqualToAnchor:[newView bottomAnchor]]];
if (animate) {
@@ -2523,7 +2530,7 @@
@catch (id e) {}
}
if (mwcFlags.fullSizeContent) {
- @try { [mainWindow removeObserver:self forKeyPath:@"contentLayoutRect"
context:&SKMainWindowContentLayoutObservationContext]; }
+ @try { [[self window] removeObserver:self
forKeyPath:@"contentLayoutRect"
context:&SKMainWindowContentLayoutObservationContext]; }
@catch (id e) {}
}
if (overviewView) {
Modified: trunk/SKMainWindowController_FullScreen.m
===================================================================
--- trunk/SKMainWindowController_FullScreen.m 2025-05-26 15:59:32 UTC (rev
15299)
+++ trunk/SKMainWindowController_FullScreen.m 2025-05-26 16:42:54 UTC (rev
15300)
@@ -591,8 +591,8 @@
}
- (void)window:(NSWindow *)window
startCustomAnimationToEnterFullScreenWithDuration:(NSTimeInterval)duration {
- if (fullScreenToolbarOffset <= 0.0 && autoHideToolbarInFullScreen() == NO
&& [[mainWindow toolbar] isVisible])
- fullScreenToolbarOffset = toolbarViewOffset(mainWindow);
+ if (fullScreenToolbarOffset <= 0.0 && autoHideToolbarInFullScreen() == NO
&& [[window toolbar] isVisible])
+ fullScreenToolbarOffset = toolbarViewOffset(window);
NSRect frame = SKShrinkRect([[window screen] frame],
-fullScreenOffset(window), NSMaxYEdge);
if ([[NSUserDefaults standardUserDefaults]
boolForKey:AppleMenuBarVisibleInFullscreenKey])
frame.size.height -= [[NSApp mainMenu] menuBarHeight] ?: 24.0;
@@ -629,8 +629,8 @@
}
- (void)windowDidEnterFullScreen:(NSNotification *)notification {
- if (fullScreenToolbarOffset < 0.0 && autoHideToolbarInFullScreen() == NO
&& [[mainWindow toolbar] isVisible]) {
- CGFloat toolbarItemOffset = toolbarViewOffset(mainWindow);
+ if (fullScreenToolbarOffset < 0.0 && autoHideToolbarInFullScreen() == NO
&& [[[self window] toolbar] isVisible]) {
+ CGFloat toolbarItemOffset = toolbarViewOffset([self window]);
if (toolbarItemOffset < 0.0)
// save the offset for the next time, we may guess it wrong as it
varies between OS versions
fullScreenToolbarOffset = toolbarItemOffset -
fullScreenToolbarOffset;
Modified: trunk/SKMainWindowController_UI.m
===================================================================
--- trunk/SKMainWindowController_UI.m 2025-05-26 15:59:32 UTC (rev 15299)
+++ trunk/SKMainWindowController_UI.m 2025-05-26 16:42:54 UTC (rev 15300)
@@ -302,12 +302,12 @@
}
- (void)windowDidChangeBackingProperties:(NSNotification *)notification {
- if ([notification object] != mainWindow)
- return;
- CGFloat oldScale = [[[notification userInfo]
objectForKey:@"NSBackingPropertyOldScaleFactorKey"] doubleValue];
- if (fabs(oldScale - [[self window] backingScaleFactor]) > 0.0) {
- [self allThumbnailsNeedUpdate];
- [self allSnapshotsNeedUpdate];
+ if (0 != ([[notification object] styleMask] & NSWindowStyleMaskTitled)) {
+ CGFloat oldScale = [[[notification userInfo]
objectForKey:@"NSBackingPropertyOldScaleFactorKey"] doubleValue];
+ if (fabs(oldScale - [[self window] backingScaleFactor]) > 0.0) {
+ [self allThumbnailsNeedUpdate];
+ [self allSnapshotsNeedUpdate];
+ }
}
}
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