Revision: 15382 http://sourceforge.net/p/skim-app/code/15382 Author: hofman Date: 2025-06-05 22:55:12 +0000 (Thu, 05 Jun 2025) Log Message: ----------- No need to check forr page from notifications. Reorganise code to check for bulk once.
Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2025-06-05 22:44:19 UTC (rev 15381) +++ trunk/SKMainWindowController.m 2025-06-05 22:55:12 UTC (rev 15382) @@ -2203,36 +2203,34 @@ if (presentationNotes == nil) presentationNotes = [[NSMutableArray alloc] init]; [presentationNotes addObject:annotation]; - if (page) { - [self updateThumbnailAtPageIndex:[page pageIndex]]; - [presentationView setNeedsDisplayForPage:page]; - } + [self updateThumbnailAtPageIndex:[page pageIndex]]; + [presentationView setNeedsDisplayForPage:page]; } else { [[undoManager prepareWithInvocationTarget:[notification object]] removeAnnotation:annotation]; - if ([annotation isSkimNote] && mwcFlags.addOrRemoveNotesInBulk == 0) { + if (mwcFlags.addOrRemoveNotesInBulk == 0) { if ([annotation isSkimNote]) { - [annotation setShouldDisplay:[pdfView hideNotes] == NO]; - [annotation setShouldPrint:[pdfView hideNotes] == NO]; - } - mwcFlags.updatingNoteSelection = 1; - [self insertObject:annotation inNotesAtIndex:[notes count]]; - [rightSideController.noteArrayController rearrangeObjects]; // doesn't seem to be done automatically - mwcFlags.updatingNoteSelection = 0; - [rightSideController.noteOutlineView reloadData]; - } - if (page) { - if (mwcFlags.addOrRemoveNotesInBulk == 0) { - [self updateThumbnailAtPageIndex:[page pageIndex]]; - for (SKSnapshotWindowController *wc in snapshots) { - if ([wc isPageVisible:page]) - [self snapshotNeedsUpdate:wc lowPriority:NO]; + if ([annotation isSkimNote]) { + [annotation setShouldDisplay:[pdfView hideNotes] == NO]; + [annotation setShouldPrint:[pdfView hideNotes] == NO]; } + mwcFlags.updatingNoteSelection = 1; + [self insertObject:annotation inNotesAtIndex:[notes count]]; + [rightSideController.noteArrayController rearrangeObjects]; // doesn't seem to be done automatically + mwcFlags.updatingNoteSelection = 0; + [rightSideController.noteOutlineView reloadData]; } - [secondaryPdfView addedAnnotation:annotation onPage:page]; - if ([self interactionMode] == SKPresentationMode) - [presentationView setNeedsDisplayForPage:page]; + + [self updateThumbnailAtPageIndex:[page pageIndex]]; + for (SKSnapshotWindowController *wc in snapshots) { + if ([wc isPageVisible:page]) + [self snapshotNeedsUpdate:wc lowPriority:NO]; + } } + + [secondaryPdfView addedAnnotation:annotation onPage:page]; + if ([self interactionMode] == SKPresentationMode) + [presentationView setNeedsDisplayForPage:page]; } } @@ -2247,42 +2245,40 @@ [[[self presentationUndoManager] prepareWithInvocationTarget:[notification object]] addAnnotation:annotation toPage:page]; [presentationNotes removeObject:annotation]; - if (page) { - [self updateThumbnailAtPageIndex:[page pageIndex]]; - [presentationView setNeedsDisplayForPage:page]; - } - } else if (page) { [self updateThumbnailAtPageIndex:[page pageIndex]]; + [presentationView setNeedsDisplayForPage:page]; + } else { + [self updateThumbnailAtPageIndex:[page pageIndex]]; } } else { [[undoManager prepareWithInvocationTarget:[notification object]] addAnnotation:annotation toPage:page]; - if ([annotation isSkimNote] && mwcFlags.addOrRemoveNotesInBulk == 0) { - if ([[self selectedNotes] containsObject:annotation]) - [rightSideController.noteOutlineView deselectAll:self]; + if (mwcFlags.addOrRemoveNotesInBulk == 0) { + if ([annotation isSkimNote]) { + if ([[self selectedNotes] containsObject:annotation]) + [rightSideController.noteOutlineView deselectAll:self]; + + [[self windowControllerForNote:annotation] close]; + + mwcFlags.updatingNoteSelection = 1; + NSUInteger i = [notes indexOfObject:annotation]; + if (i != NSNotFound) + [self removeObjectFromNotesAtIndex:i]; + [rightSideController.noteArrayController rearrangeObjects]; // doesn't seem to be done automatically + mwcFlags.updatingNoteSelection = 0; + [rightSideController.noteOutlineView reloadData]; + } - [[self windowControllerForNote:annotation] close]; - - mwcFlags.updatingNoteSelection = 1; - NSUInteger i = [notes indexOfObject:annotation]; - if (i != NSNotFound) - [self removeObjectFromNotesAtIndex:i]; - [rightSideController.noteArrayController rearrangeObjects]; // doesn't seem to be done automatically - mwcFlags.updatingNoteSelection = 0; - [rightSideController.noteOutlineView reloadData]; - } - if (page) { - if (mwcFlags.addOrRemoveNotesInBulk == 0) { - [self updateThumbnailAtPageIndex:[page pageIndex]]; - for (SKSnapshotWindowController *wc in snapshots) { - if ([wc isPageVisible:page]) - [self snapshotNeedsUpdate:wc lowPriority:NO]; - } + [self updateThumbnailAtPageIndex:[page pageIndex]]; + for (SKSnapshotWindowController *wc in snapshots) { + if ([wc isPageVisible:page]) + [self snapshotNeedsUpdate:wc lowPriority:NO]; } - [secondaryPdfView removedAnnotation:annotation onPage:page]; - if ([self interactionMode] == SKPresentationMode) - [presentationView setNeedsDisplayForPage:page]; } + + [secondaryPdfView removedAnnotation:annotation onPage:page]; + if ([self interactionMode] == SKPresentationMode) + [presentationView setNeedsDisplayForPage:page]; } } @@ -2294,23 +2290,20 @@ [[[[self document] undoManager] prepareWithInvocationTarget:[notification object]] moveAnnotation:annotation toPage:oldPage]; - if (oldPage || newPage) { - if (oldPage) - [self updateThumbnailAtPageIndex:[oldPage pageIndex]]; - if (newPage) - [self updateThumbnailAtPageIndex:[newPage pageIndex]]; - for (SKSnapshotWindowController *wc in snapshots) { - if ([wc isPageVisible:oldPage] || [wc isPageVisible:newPage]) - [self snapshotNeedsUpdate:wc lowPriority:NO]; - } - [secondaryPdfView removedAnnotation:annotation onPage:oldPage]; - [secondaryPdfView addedAnnotation:annotation onPage:newPage]; - if ([self interactionMode] == SKPresentationMode) { - [presentationView setNeedsDisplayForPage:oldPage]; - [presentationView setNeedsDisplayForPage:newPage]; - } + [self updateThumbnailAtPageIndex:[oldPage pageIndex]]; + [self updateThumbnailAtPageIndex:[newPage pageIndex]]; + for (SKSnapshotWindowController *wc in snapshots) { + if ([wc isPageVisible:oldPage] || [wc isPageVisible:newPage]) + [self snapshotNeedsUpdate:wc lowPriority:NO]; } + [secondaryPdfView removedAnnotation:annotation onPage:oldPage]; + [secondaryPdfView addedAnnotation:annotation onPage:newPage]; + if ([self interactionMode] == SKPresentationMode) { + [presentationView setNeedsDisplayForPage:oldPage]; + [presentationView setNeedsDisplayForPage:newPage]; + } + [rightSideController.noteArrayController rearrangeObjects]; [rightSideController.noteOutlineView reloadData]; } 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