Revision: 16087
          http://sourceforge.net/p/skim-app/code/16087
Author:   hofman
Date:     2026-03-23 16:51:52 +0000 (Mon, 23 Mar 2026)
Log Message:
-----------
don't use action methods to toggle side panes without animation

Modified Paths:
--------------
    trunk/SKMainWindowController.m
    trunk/SKMainWindowController_Actions.m

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2026-03-23 16:33:28 UTC (rev 16086)
+++ trunk/SKMainWindowController.m      2026-03-23 16:51:52 UTC (rev 16087)
@@ -444,8 +444,8 @@
     
     // Show/hide left side pane if necessary
     BOOL hasOutline = ([[pdfView document] outlineRoot] != nil);
-    if ([sud boolForKey:SKOpenContentsPaneOnlyForTOCKey] && [self 
leftSidePaneIsOpen] != hasOutline)
-        [self toggleLeftSidePane:nil];
+    if ([sud boolForKey:SKOpenContentsPaneOnlyForTOCKey])
+        [[[splitViewController splitViewItems] firstObject] 
setCollapsed:hasOutline == NO];
     if (hasOutline)
         [self setLeftSidePaneState:SKSidePaneStateOutline];
     else
@@ -1787,8 +1787,9 @@
 
 - (void)setSearchString:(NSString *)searchString {
     if ([searchString length] > 0) {
-        if ([self leftSidePaneIsOpen] == NO)
-            [self toggleLeftSidePane:nil];
+        if ([self hasOverview])
+            [self hideOverviewAnimating:NO];
+        [[[splitViewController splitViewItems] firstObject] setCollapsed:NO];
         [leftSideController.searchField setStringValue:searchString];
         [self performSelector:@selector(search:) 
withObject:leftSideController.searchField afterDelay:0.0];
     } else {
@@ -2493,13 +2494,17 @@
         rect.size.width = rect.size.height = 1.0;
     } else {
         NSUInteger row = [[rightSideController.snapshotArrayController 
arrangedObjects] indexOfObject:controller];
-        BOOL shouldReopenRightSidePane = NO;
+        NSSplitViewItem *item = nil;
         if (isMiniaturize && [self interactionMode] != SKPresentationMode) {
-            if ([self rightSidePaneIsOpen] == NO) {
-                [self toggleRightSidePane:nil];
-                shouldReopenRightSidePane = [NSView shouldShowSlideAnimation];
+            item = [[splitViewController splitViewItems] lastObject];
+            [self setRightSidePaneState:SKSidePaneStateSnapshot];
+            if ([item isCollapsed]) {
+                [item setCollapsed:NO];
+                if ([NSView shouldShowSlideAnimation] == NO)
+                    item = nil;
+            } else {
+                item = nil;
             }
-            [self setRightSidePaneState:SKSidePaneStateSnapshot];
             if (row != NSNotFound)
                 [rightSideController.snapshotTableView scrollRowToVisible:row];
         }
@@ -2510,9 +2515,9 @@
             rect.size.width = rect.size.height = 1.0;
         }
         rect = [[self window] 
convertRectToScreen:[rightSideController.snapshotTableView convertRect:rect 
toView:nil]];
-        if (shouldReopenRightSidePane) {
-            [self toggleRightSidePane:nil];
-            [self toggleRightSidePane:self];
+        if (item) {
+            [item setCollapsed:YES];
+            [[item animator] setCollapsed:NO];
         }
     }
     [[self document] setRecentInfoNeedsUpdate:YES];

Modified: trunk/SKMainWindowController_Actions.m
===================================================================
--- trunk/SKMainWindowController_Actions.m      2026-03-23 16:33:28 UTC (rev 
16086)
+++ trunk/SKMainWindowController_Actions.m      2026-03-23 16:51:52 UTC (rev 
16087)
@@ -1027,16 +1027,16 @@
         else
             [self showSideWindow];
     } else if ([self hasOverview]) {
-        [self hideOverviewAnimating:sender != nil completionHandler:^{ [self 
toggleLeftSidePane:sender]; }];
+        [self hideOverviewAnimating:YES completionHandler:^{ [self 
toggleLeftSidePane:sender]; }];
     } else {
         NSSplitViewItem *item = [[splitViewController splitViewItems] 
firstObject];
         BOOL collapse = [item isCollapsed] == NO;
         if (collapse && [[self window] firstResponderIsDescendantOf:[[item 
viewController] view]])
             [[self window] makeFirstResponder:pdfView];
-        if (sender == nil || [NSView shouldShowSlideAnimation] == NO)
+        if ([NSView shouldShowSlideAnimation])
+            [[item animator] setCollapsed:collapse];
+        else
             [item setCollapsed:collapse];
-        else
-            [[item animator] setCollapsed:collapse];
     }
 }
 
@@ -1043,13 +1043,13 @@
 - (IBAction)toggleRightSidePane:(id)sender {
     if ([self interactionMode] == SKPresentationMode) {
     } else if ([self hasOverview]) {
-        [self hideOverviewAnimating:sender != nil completionHandler:^{ [self 
toggleRightSidePane:sender]; }];
+        [self hideOverviewAnimating:YES completionHandler:^{ [self 
toggleRightSidePane:sender]; }];
     } else {
         NSSplitViewItem *item = [[splitViewController splitViewItems] 
lastObject];
         BOOL collapse = [item isCollapsed] == NO;
         if (collapse && [[self window] firstResponderIsDescendantOf:[[item 
viewController] view]])
             [[self window] makeFirstResponder:pdfView];
-        if (sender == nil || [NSView shouldShowSlideAnimation] == NO) {
+        if ([NSView shouldShowSlideAnimation] == NO) {
             [item setCollapsed:collapse];
         } else if (mwcFlags.autoResizeNoteRows && mwcFlags.rightSidePaneState 
== SKSidePaneStateNote) {
             mwcFlags.autoResizeNoteRows = NO;

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

Reply via email to