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
Skim-app-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to