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