Revision: 12733 http://sourceforge.net/p/skim-app/code/12733 Author: hofman Date: 2022-01-21 15:09:57 +0000 (Fri, 21 Jan 2022) Log Message: ----------- Delay and coalesce auto resizing of note rows when resizing column widths
Modified Paths: -------------- trunk/NSObject_SKExtensions.h trunk/NSObject_SKExtensions.m trunk/SKMainWindowController_UI.m trunk/SKNotesDocument.m trunk/SKPDFView.m Modified: trunk/NSObject_SKExtensions.h =================================================================== --- trunk/NSObject_SKExtensions.h 2022-01-21 14:25:58 UTC (rev 12732) +++ trunk/NSObject_SKExtensions.h 2022-01-21 15:09:57 UTC (rev 12733) @@ -42,6 +42,8 @@ @interface NSObject (SKExtensions) +- (void)performSelectorOnce:(SEL)aSelector afterDelay:(NSTimeInterval)delay; + - (NSUInteger)countOfTexLines; - (id)objectInTexLinesAtIndex:(NSUInteger)idx; Modified: trunk/NSObject_SKExtensions.m =================================================================== --- trunk/NSObject_SKExtensions.m 2022-01-21 14:25:58 UTC (rev 12732) +++ trunk/NSObject_SKExtensions.m 2022-01-21 15:09:57 UTC (rev 12733) @@ -44,6 +44,11 @@ @implementation NSObject (SKExtensions) +- (void)performSelectorOnce:(SEL)aSelector afterDelay:(NSTimeInterval)delay { + [[self class] cancelPreviousPerformRequestsWithTarget:self selector:aSelector object:nil]; + [self performSelector:aSelector withObject:nil afterDelay:delay]; +} + - (NSUInteger)countOfTexLines { return INT_MAX; } Modified: trunk/SKMainWindowController_UI.m =================================================================== --- trunk/SKMainWindowController_UI.m 2022-01-21 14:25:58 UTC (rev 12732) +++ trunk/SKMainWindowController_UI.m 2022-01-21 15:09:57 UTC (rev 12733) @@ -90,6 +90,7 @@ #import "SKOverviewView.h" #import "NSView_SKExtensions.h" #import "NSImage_SKExtensions.h" +#import "NSObject_SKExtensions.h" #define NOTES_KEY @"notes" #define SNAPSHOTS_KEY @"snapshots" @@ -852,15 +853,15 @@ } } +- (void)autoResizeNoteRows { + [rowHeights removeAllFloats]; + [rightSideController.noteOutlineView noteHeightOfRowsChangedAnimating:YES]; +} + - (void)outlineViewColumnDidResize:(NSNotification *)notification{ if (mwcFlags.autoResizeNoteRows && [[notification object] isEqual:rightSideController.noteOutlineView] && - [(SKScrollView *)[rightSideController.noteOutlineView enclosingScrollView] isResizingSubviews] == NO) { - NSTableColumn *tc = [[notification userInfo] objectForKey:@"NSTableColumn"]; - if ([[tc identifier] isEqualToString:NOTE_COLUMNID] || tc == [[notification object] lastVisibleTableColumn]) { - [rowHeights removeAllFloats]; - [rightSideController.noteOutlineView noteHeightOfRowsChangedAnimating:NO]; - } - } + [(SKScrollView *)[rightSideController.noteOutlineView enclosingScrollView] isResizingSubviews] == NO) + [self performSelectorOnce:@selector(autoResizeNoteRows) afterDelay:0.0]; } - (void)outlineView:(NSOutlineView *)ov didChangeHiddenOfTableColumn:(NSTableColumn *)tableColumn { Modified: trunk/SKNotesDocument.m =================================================================== --- trunk/SKNotesDocument.m 2022-01-21 14:25:58 UTC (rev 12732) +++ trunk/SKNotesDocument.m 2022-01-21 15:09:57 UTC (rev 12733) @@ -72,6 +72,7 @@ #import "NSInvocation_SKExtensions.h" #import "PDFDocument_SKExtensions.h" #import "SKNoteTableRowView.h" +#import "NSObject_SKExtensions.h" #define SKNotesDocumentWindowFrameAutosaveName @"SKNotesDocumentWindow" @@ -758,14 +759,14 @@ [ov reloadData]; } +- (void)autoResizeNoteRows { + [rowHeights removeAllFloats]; + [outlineView noteHeightOfRowsChangedAnimating:YES]; +} + - (void)outlineViewColumnDidResize:(NSNotification *)notification{ - if (ndFlags.autoResizeRows && [(SKScrollView *)[[notification object] enclosingScrollView] isResizingSubviews] == NO) { - NSTableColumn *tc = [[notification userInfo] objectForKey:@"NSTableColumn"]; - if ([[tc identifier] isEqualToString:NOTE_COLUMNID] || tc == [outlineView lastVisibleTableColumn]) { - [rowHeights removeAllFloats]; - [outlineView noteHeightOfRowsChangedAnimating:NO]; - } - } + if (ndFlags.autoResizeRows && [(SKScrollView *)[[notification object] enclosingScrollView] isResizingSubviews] == NO) + [self performSelectorOnce:@selector(autoResizeNoteRows) afterDelay:0.0]; } - (void)outlineView:(NSOutlineView *)ov didChangeHiddenOfTableColumn:(NSTableColumn *)tableColumn { Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2022-01-21 14:25:58 UTC (rev 12732) +++ trunk/SKPDFView.m 2022-01-21 15:09:57 UTC (rev 12733) @@ -80,6 +80,7 @@ #import "NSScroller_SKExtensions.h" #import "SKColorMenuView.h" #import "SKMainWindowController_Actions.h" +#import "NSObject_SKExtensions.h" #define ANNOTATION_MODE_COUNT 9 #define TOOL_MODE_COUNT 5 @@ -209,7 +210,6 @@ - (void)doAutoHide; - (void)showNavWindow; -- (void)performSelectorOnce:(SEL)aSelector afterDelay:(NSTimeInterval)delay; - (void)doMoveActiveAnnotationForKey:(unichar)eventChar byAmount:(CGFloat)delta; - (void)doResizeActiveAnnotationForKey:(unichar)eventChar byAmount:(CGFloat)delta; @@ -3301,11 +3301,6 @@ } } -- (void)performSelectorOnce:(SEL)aSelector afterDelay:(NSTimeInterval)delay { - [[self class] cancelPreviousPerformRequestsWithTarget:self selector:aSelector object:nil]; - [self performSelector:aSelector withObject:nil afterDelay:delay]; -} - #pragma mark Event handling - (void)doMoveActiveAnnotationForKey:(unichar)eventChar byAmount:(CGFloat)delta { 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