Revision: 12553 http://sourceforge.net/p/skim-app/code/12553 Author: hofman Date: 2021-11-13 18:57:35 +0000 (Sat, 13 Nov 2021) Log Message: ----------- Register editor for text note on textDidBeginEditing rather than on attaching the editor, make sure we clean up the editor
Modified Paths: -------------- trunk/SKMainWindowController_UI.m trunk/SKPDFView.h trunk/SKPDFView.m trunk/SKTextNoteEditor.h trunk/SKTextNoteEditor.m Modified: trunk/SKMainWindowController_UI.m =================================================================== --- trunk/SKMainWindowController_UI.m 2021-11-13 18:35:32 UTC (rev 12552) +++ trunk/SKMainWindowController_UI.m 2021-11-13 18:57:35 UTC (rev 12553) @@ -260,7 +260,7 @@ } if ([[pdfView document] isFinding]) [[pdfView document] cancelFindString]; - if ((mwcFlags.isEditingPDF || mwcFlags.isEditingTable) && [self commitEditing] == NO) + if ((mwcFlags.isEditingPDF || mwcFlags.isEditingTable || [pdfView isEditing]) && [self commitEditing] == NO) [self discardEditing]; [rightSideController.noteOutlineView enumerateAvailableRowViewsUsingBlock:^(SKNoteTableRowView *rowView, NSInteger row){ [[rowView rowCellView] setObjectValue:nil]; }]; [self cleanup]; // clean up everything @@ -1329,7 +1329,7 @@ } - (void)setDocument:(NSDocument *)document { - if ([self document] && document == nil && (mwcFlags.isEditingPDF || mwcFlags.isEditingTable)) { + if ([self document] && document == nil && (mwcFlags.isEditingPDF || mwcFlags.isEditingTable || [pdfView isEditing])) { if ([self commitEditing] == NO) [self discardEditing]; if (mwcFlags.isEditingPDF || mwcFlags.isEditingTable) Modified: trunk/SKPDFView.h =================================================================== --- trunk/SKPDFView.h 2021-11-13 18:35:32 UTC (rev 12552) +++ trunk/SKPDFView.h 2021-11-13 18:57:35 UTC (rev 12553) @@ -164,6 +164,7 @@ @property (nonatomic) SKNoteType annotationMode; @property (nonatomic) SKInteractionMode interactionMode; @property (nonatomic, retain) PDFAnnotation *activeAnnotation; +@property (nonatomic, readonly, getter=isEditing) BOOL editing; @property (nonatomic, readonly, getter=isZooming) BOOL zooming; @property (nonatomic) NSRect currentSelectionRect; @property (nonatomic, retain) PDFPage *currentSelectionPage; Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2021-11-13 18:35:32 UTC (rev 12552) +++ trunk/SKPDFView.m 2021-11-13 18:57:35 UTC (rev 12553) @@ -257,7 +257,7 @@ @synthesize toolMode, annotationMode, interactionMode, activeAnnotation, readingBar, pacerSpeed, transitionController, typeSelectHelper, syncDot, highlightAnnotation; @synthesize currentMagnification=magnification, zooming; -@dynamic extendedDisplayMode, displaysHorizontally, displaysRightToLeft, hideNotes, hasReadingBar, hasPacer, currentSelectionPage, currentSelectionRect, needsRewind; +@dynamic extendedDisplayMode, displaysHorizontally, displaysRightToLeft, hideNotes, hasReadingBar, hasPacer, currentSelectionPage, currentSelectionRect, needsRewind, editing; + (void)initialize { SKINITIALIZE; @@ -699,6 +699,10 @@ } } +- (BOOL)isEditing { + return editor != nil; +} + - (void)setDisplayMode:(PDFDisplayMode)mode { if (mode != [self displayMode] || (mode == kPDFDisplaySinglePageContinuous && [self displaysHorizontally])) { PDFPage *page = [self currentPage]; @@ -2702,7 +2706,9 @@ [editor layoutWithEvent:theEvent]; [self setNeedsDisplayForAnnotation:activeAnnotation]; - +} + +- (void)textNoteEditorDidBeginEditing:(SKTextNoteEditor *)textNoteEditor { if ([[self delegate] respondsToSelector:@selector(PDFViewDidBeginEditing:)]) [[self delegate] PDFViewDidBeginEditing:self]; } Modified: trunk/SKTextNoteEditor.h =================================================================== --- trunk/SKTextNoteEditor.h 2021-11-13 18:35:32 UTC (rev 12552) +++ trunk/SKTextNoteEditor.h 2021-11-13 18:57:35 UTC (rev 12553) @@ -59,5 +59,6 @@ @end @interface PDFView (SKTextNoteEditor) +- (void)textNoteEditorDidBeginEditing:(SKTextNoteEditor *)textNoteEditor; - (void)textNoteEditorDidEndEditing:(SKTextNoteEditor *)textNoteEditor; @end Modified: trunk/SKTextNoteEditor.m =================================================================== --- trunk/SKTextNoteEditor.m 2021-11-13 18:35:32 UTC (rev 12552) +++ trunk/SKTextNoteEditor.m 2021-11-13 18:57:35 UTC (rev 12553) @@ -233,6 +233,11 @@ return NO; } +- (void)textDidBeginEditing:(NSNotification *)notification { + if ([pdfView respondsToSelector:@selector(textNoteEditorDidBeginEditing:)]) + [pdfView textNoteEditorDidBeginEditing:self]; +} + - (void)textDidEndEditing:(NSNotification *)notification { [self endEditingWithCommit:YES]; } 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