Revision: 14838 http://sourceforge.net/p/skim-app/code/14838 Author: hofman Date: 2024-12-16 10:16:39 +0000 (Mon, 16 Dec 2024) Log Message: ----------- Perform action in split pdf when holding the shift key
Modified Paths: -------------- trunk/SKMainWindowController_Actions.m trunk/SKMainWindowController_UI.m trunk/SKPDFView.h trunk/SKPDFView.m Modified: trunk/SKMainWindowController_Actions.m =================================================================== --- trunk/SKMainWindowController_Actions.m 2024-12-16 09:49:29 UTC (rev 14837) +++ trunk/SKMainWindowController_Actions.m 2024-12-16 10:16:39 UTC (rev 14838) @@ -242,10 +242,10 @@ - (void)goToSelectedOutlineItem:(id)sender { PDFOutline *outlineItem = [leftSideController.tocOutlineView itemAtRow:[leftSideController.tocOutlineView selectedRow]]; - if ([outlineItem destination]) + if ([outlineItem action]) + [pdfView performAction:[outlineItem action]]; + else if ([outlineItem destination]) [pdfView goToDestination:[outlineItem destination]]; - else if ([outlineItem action]) - [pdfView performAction:[outlineItem action]]; } - (void)goToSelectedFindResults:(id)sender { Modified: trunk/SKMainWindowController_UI.m =================================================================== --- trunk/SKMainWindowController_UI.m 2024-12-16 09:49:29 UTC (rev 14837) +++ trunk/SKMainWindowController_UI.m 2024-12-16 10:16:39 UTC (rev 14838) @@ -1542,6 +1542,23 @@ [[self document] printDocument:aPDFView]; } +- (BOOL)PDFView:(PDFView *)aPDFView performAction:(PDFAction *)action { + if ([action isKindOfClass:[PDFActionGoTo class]] && ([NSEvent modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask) == NSEventModifierFlagShift) { + if ([secondaryPdfView window] == nil) + [self toggleSplitPDF:nil]; + if ([pdfSplitView isAnimating]) { + [pdfSplitView enqueueOperation:^{ + [secondaryPdfView performAction:action]; + }]; + } else { + [secondaryPdfView performAction:action]; + } + return YES; + } else { + return NO; + } +} + - (void)PDFViewDidBeginEditing:(PDFView *)aPDFView { if (mwcFlags.isEditingPDF == NO && mwcFlags.isEditingTable == NO) [[self document] objectDidBeginEditing:(id)self]; Modified: trunk/SKPDFView.h =================================================================== --- trunk/SKPDFView.h 2024-12-16 09:49:29 UTC (rev 14837) +++ trunk/SKPDFView.h 2024-12-16 10:16:39 UTC (rev 14838) @@ -125,6 +125,7 @@ - (void)PDFView:(PDFView *)pdfView showSnapshotAtPageNumber:(NSInteger)pageNum forRect:(NSRect)rect scaleFactor:(CGFloat)scaleFactor autoFits:(BOOL)autoFits; - (void)PDFViewPerformHideFind:(PDFView *)pdfView; - (BOOL)PDFViewIsFindVisible:(PDFView *)pdfView; +- (BOOL)PDFView:(PDFView *)pdfView performAction:(PDFAction *)action; - (void)PDFView:(PDFView *)pdfView didRotatePageAtIndex:(NSUInteger)idx by:(NSInteger)rotation; - (nullable NSUndoManager *)undoManagerForPDFView:(PDFView *)pdfView; @end Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2024-12-16 09:49:29 UTC (rev 14837) +++ trunk/SKPDFView.m 2024-12-16 10:16:39 UTC (rev 14838) @@ -2144,6 +2144,12 @@ [super magnifyWithEvent:theEvent]; } + +- (void)performAction:(PDFAction *)action { + if ([[self delegate] respondsToSelector:@selector(PDFView:performAction:)] == NO || [[self delegate] PDFView:self performAction:action] == NO) + [super performAction:action]; +} + #pragma mark NSDraggingDestination protocol - (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender { 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