Revision: 15445
http://sourceforge.net/p/skim-app/code/15445
Author: hofman
Date: 2025-06-11 22:24:10 +0000 (Wed, 11 Jun 2025)
Log Message:
-----------
coalesce snapshpt updates
Modified Paths:
--------------
trunk/NSObject_SKExtensions.h
trunk/NSObject_SKExtensions.m
trunk/SKMainWindowController.h
trunk/SKMainWindowController.m
Modified: trunk/NSObject_SKExtensions.h
===================================================================
--- trunk/NSObject_SKExtensions.h 2025-06-11 16:41:12 UTC (rev 15444)
+++ trunk/NSObject_SKExtensions.h 2025-06-11 22:24:10 UTC (rev 15445)
@@ -44,6 +44,7 @@
@interface NSObject (SKExtensions)
- (void)performSelectorOnce:(SEL)aSelector afterDelay:(NSTimeInterval)delay;
+- (void)performSelectorOnce:(SEL)aSelector withObject:(id)anObject
afterDelay:(NSTimeInterval)delay;
- (NSUInteger)countOfTexLines;
- (NSNumber *)objectInTexLinesAtIndex:(NSUInteger)idx;
Modified: trunk/NSObject_SKExtensions.m
===================================================================
--- trunk/NSObject_SKExtensions.m 2025-06-11 16:41:12 UTC (rev 15444)
+++ trunk/NSObject_SKExtensions.m 2025-06-11 22:24:10 UTC (rev 15445)
@@ -48,6 +48,11 @@
[self performSelector:aSelector withObject:nil afterDelay:delay];
}
+- (void)performSelectorOnce:(SEL)aSelector withObject:(id)anObject
afterDelay:(NSTimeInterval)delay {
+ [[self class] cancelPreviousPerformRequestsWithTarget:self
selector:aSelector object:anObject];
+ [self performSelector:aSelector withObject:anObject afterDelay:delay];
+}
+
- (NSUInteger)countOfTexLines {
return INT_MAX;
}
Modified: trunk/SKMainWindowController.h
===================================================================
--- trunk/SKMainWindowController.h 2025-06-11 16:41:12 UTC (rev 15444)
+++ trunk/SKMainWindowController.h 2025-06-11 22:24:10 UTC (rev 15445)
@@ -314,6 +314,7 @@
- (void)resetSnapshotSizeIfNeeded;
- (void)snapshotNeedsUpdate:(SKSnapshotWindowController *)dirstySnapshot
lowPriority:(BOOL)lowPriority;
+- (void)snapshotNeedsUpdate:(SKSnapshotWindowController *)dirstySnapshot;
- (void)allSnapshotsNeedUpdate;
- (void)setPdfDocument:(nullable PDFDocument *)pdfDocument
addAnnotationsWithProperties:(nullable NSArray<NSDictionary<NSString *, id> *>
*)noteDicts;
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2025-06-11 16:41:12 UTC (rev 15444)
+++ trunk/SKMainWindowController.m 2025-06-11 22:24:10 UTC (rev 15445)
@@ -1019,7 +1019,7 @@
[self updateThumbnailsAtPageIndexes:pageIndexes];
for (SKSnapshotWindowController *wc in snapshots) {
if ([wc isPageInIndexesVisible:pageIndexes])
- [self snapshotNeedsUpdate:wc lowPriority:NO];
+ [self performSelectorOnce:@selector(snapshotNeedsUpdate:)
withObject:wc afterDelay:0.0];
}
[pdfView resetPDFToolTipRects];
}
@@ -2187,7 +2187,7 @@
NSUInteger idx = [page pageIndex];
for (SKSnapshotWindowController *wc in snapshots) {
if ([wc isPageVisible:page]) {
- [self snapshotNeedsUpdate:wc lowPriority:NO];
+ [self snapshotNeedsUpdate:wc];
[[wc pdfView] setNeedsDisplay:YES];
}
}
@@ -2257,7 +2257,7 @@
[self updateThumbnailAtPageIndex:[page pageIndex]];
for (SKSnapshotWindowController *wc in snapshots) {
if ([wc isPageVisible:page])
- [self snapshotNeedsUpdate:wc lowPriority:NO];
+ [self performSelectorOnce:@selector(snapshotNeedsUpdate:)
withObject:wc afterDelay:0.0];
}
}
@@ -2304,7 +2304,7 @@
[self updateThumbnailAtPageIndex:[page pageIndex]];
for (SKSnapshotWindowController *wc in snapshots) {
if ([wc isPageVisible:page])
- [self snapshotNeedsUpdate:wc lowPriority:NO];
+ [self performSelectorOnce:@selector(snapshotNeedsUpdate:)
withObject:wc afterDelay:0.0];
}
}
@@ -2326,7 +2326,7 @@
[self updateThumbnailAtPageIndex:[newPage pageIndex]];
for (SKSnapshotWindowController *wc in snapshots) {
if ([wc isPageVisible:oldPage] || [wc isPageVisible:newPage])
- [self snapshotNeedsUpdate:wc lowPriority:NO];
+ [self performSelectorOnce:@selector(snapshotNeedsUpdate:)
withObject:wc afterDelay:0.0];
}
[secondaryPdfView removedAnnotation:annotation onPage:oldPage];
@@ -2449,7 +2449,7 @@
- (void)snapshotControllerDidChange:(SKSnapshotWindowController *)controller {
if (controller != presentationPreview) {
- [self snapshotNeedsUpdate:controller lowPriority:NO];
+ [self snapshotNeedsUpdate:controller];
[rightSideController.snapshotArrayController rearrangeObjects];
[rightSideController.snapshotTableView reloadData];
[[self document] setRecentInfoNeedsUpdate:YES];
@@ -2761,7 +2761,7 @@
for (SKSnapshotWindowController *wc in snapshots) {
if ([wc isPageVisible:page]) {
- [self snapshotNeedsUpdate:wc lowPriority:NO];
+ [self
performSelectorOnce:@selector(snapshotNeedsUpdate:) withObject:wc
afterDelay:0.0];
[[wc pdfView] updatedAnnotation:note];
}
}
@@ -3151,9 +3151,13 @@
});
}
+- (void)snapshotNeedsUpdate:(SKSnapshotWindowController *)controller {
+ [self snapshotNeedsUpdate:controller lowPriority:NO];
+}
+
- (void)allSnapshotsNeedUpdate {
for (SKSnapshotWindowController *controller in [self snapshots])
- [self snapshotNeedsUpdate:controller lowPriority:NO];
+ [self snapshotNeedsUpdate:controller];
}
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