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

Reply via email to