Revision: 29068
          http://sourceforge.net/p/bibdesk/svn/29068
Author:   hofman
Date:     2025-02-25 10:09:15 +0000 (Tue, 25 Feb 2025)
Log Message:
-----------
Let the error manager call editor's updateDisplayName instead of using KVO from 
the editor, it is dangerous to observe a weak property

Modified Paths:
--------------
    trunk/bibdesk/BDSKErrorEditor.m
    trunk/bibdesk/BDSKErrorManager.m

Modified: trunk/bibdesk/BDSKErrorEditor.m
===================================================================
--- trunk/bibdesk/BDSKErrorEditor.m     2025-02-24 22:45:38 UTC (rev 29067)
+++ trunk/bibdesk/BDSKErrorEditor.m     2025-02-25 10:09:15 UTC (rev 29068)
@@ -180,13 +180,9 @@
 
 - (void)setManager:(BDSKErrorManager *)newManager {
     if(manager != newManager){
+        manager = newManager;
         if (manager)
-            [manager removeObserver:self forKeyPath:@"displayName" 
context:&BDSKErrorEditorObservationContext];
-        manager = newManager;
-        if (manager) {
             [self updateDisplayName];
-            [manager addObserver:self forKeyPath:@"displayName" options:0 
context:&BDSKErrorEditorObservationContext];
-        }
     }
 }
 
@@ -207,20 +203,10 @@
         displayName = newDisplayName;
     }
     [self didChangeValueForKey:@"displayName"];
-}
-
-- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
change:(NSDictionary *)change context:(void *)context{
-    if (context == &BDSKErrorEditorObservationContext) {
-        if(object == manager && [keyPath isEqualToString:@"displayName"]){
-            [self updateDisplayName];
-            
-            if ([self isWindowLoaded]) {
-                NSString *prefix = pasteDrag ? NSLocalizedString(@"Paste/Drag 
Data", @"Partial window title") : NSLocalizedString(@"Source Data", @"Partial 
window title");
-                [[self window] setTitle:[NSString stringWithFormat:@"%@: %@", 
prefix, [manager displayName]]];
-            }
-        }
-    } else {
-        [super observeValueForKeyPath:keyPath ofObject:object change:change 
context:context];
+    
+    if ([self isWindowLoaded]) {
+        NSString *prefix = pasteDrag ? NSLocalizedString(@"Paste/Drag Data", 
@"Partial window title") : NSLocalizedString(@"Source Data", @"Partial window 
title");
+        [[self window] setTitle:[NSString stringWithFormat:@"%@: %@", prefix, 
[manager displayName]]];
     }
 }
 

Modified: trunk/bibdesk/BDSKErrorManager.m
===================================================================
--- trunk/bibdesk/BDSKErrorManager.m    2025-02-24 22:45:38 UTC (rev 29067)
+++ trunk/bibdesk/BDSKErrorManager.m    2025-02-25 10:09:15 UTC (rev 29068)
@@ -139,8 +139,6 @@
     if(document == nil)
         return;
     
-    [self willChangeValueForKey:@"displayName"];
-    
     NSString *name = [document displayName];
     [self setDocumentDisplayName:name ?: @"?"];
     
@@ -151,7 +149,7 @@
             uniqueNumber = MAX(uniqueNumber, [manager uniqueNumber] + 1);
     }
     
-    [self didChangeValueForKey:@"displayName"];
+    [editors makeObjectsPerformSelector:@selector(updateDisplayName)];
 }
 
 - (NSStringEncoding)documentStringEncoding;

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to