Revision: 15646
          http://sourceforge.net/p/skim-app/code/15646
Author:   hofman
Date:     2025-07-11 22:30:54 +0000 (Fri, 11 Jul 2025)
Log Message:
-----------
get next first responder from responder chain

Modified Paths:
--------------
    trunk/SKPDFView.m
    trunk/SKTextNoteEditor.h
    trunk/SKTextNoteEditor.m

Modified: trunk/SKPDFView.m
===================================================================
--- trunk/SKPDFView.m   2025-07-11 22:03:17 UTC (rev 15645)
+++ trunk/SKPDFView.m   2025-07-11 22:30:54 UTC (rev 15646)
@@ -2793,12 +2793,9 @@
         [[self delegate] PDFViewDidBeginEditing:self];
 }
 
-- (void)textNoteEditorDidEndEditing:(SKTextNoteEditor *)textNoteEditor 
wasFirstResponder:(BOOL)wasFirstResponder {
+- (void)textNoteEditorDidEndEditing:(SKTextNoteEditor *)textNoteEditor {
     editor = nil;
     
-    if (wasFirstResponder)
-        [[self window] makeFirstResponder:self];
-    
     [self updatedAnnotation:currentAnnotation];
     
     if ([[self delegate] respondsToSelector:@selector(PDFViewDidEndEditing:)])

Modified: trunk/SKTextNoteEditor.h
===================================================================
--- trunk/SKTextNoteEditor.h    2025-07-11 22:03:17 UTC (rev 15645)
+++ trunk/SKTextNoteEditor.h    2025-07-11 22:30:54 UTC (rev 15646)
@@ -62,7 +62,7 @@
 @protocol SKTextNoteEditorDelegate <NSObject>;
 - (void)textNoteEditorSetFrame:(SKTextNoteEditor *)textNoteEditor;
 - (void)textNoteEditorDidBeginEditing:(SKTextNoteEditor *)textNoteEditor;
-- (void)textNoteEditorDidEndEditing:(SKTextNoteEditor *)textNoteEditor 
wasFirstResponder:(BOOL)wasFirstResponder;
+- (void)textNoteEditorDidEndEditing:(SKTextNoteEditor *)textNoteEditor;
 @end
 
 NS_ASSUME_NONNULL_END

Modified: trunk/SKTextNoteEditor.m
===================================================================
--- trunk/SKTextNoteEditor.m    2025-07-11 22:03:17 UTC (rev 15645)
+++ trunk/SKTextNoteEditor.m    2025-07-11 22:30:54 UTC (rev 15646)
@@ -156,19 +156,24 @@
     // avoid getting textDidEndEditing: messages
     [textView setDelegate:nil];
     
-    BOOL wasFirstResponder = NO;
-    
-    if ([self superview]) {
-        NSWindow *window = [self window];
-        wasFirstResponder = (textView && [window firstResponder] == textView);
+    NSWindow *window = [self window];
+    if (window) {
+        NSResponder *responder = nil;
+        if (textView && [window firstResponder] == textView) {
+            responder = [self superview];
+            while (responder && [responder acceptsFirstResponder] == NO)
+                responder = [responder nextResponder];
+        }
         [self removeFromSuperview];
         [window recalculateKeyViewLoop];
+        if (responder)
+            [window makeFirstResponder:responder];
     }
     
     id<SKTextNoteEditorDelegate> theDelegate = delegate;
     delegate = nil;
     
-    [theDelegate textNoteEditorDidEndEditing:self 
wasFirstResponder:wasFirstResponder];
+    [theDelegate textNoteEditorDidEndEditing:self];
 }
 
 - (void)startEditingWithEvent:(NSEvent *)event {

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