Revision: 23886
          http://sourceforge.net/p/bibdesk/svn/23886
Author:   hofman
Date:     2019-06-20 15:00:33 +0000 (Thu, 20 Jun 2019)
Log Message:
-----------
no need to observer key window for first responder or key state

Modified Paths:
--------------
    trunk/bibdesk/BDSKTypeSelectHelper.m

Modified: trunk/bibdesk/BDSKTypeSelectHelper.m
===================================================================
--- trunk/bibdesk/BDSKTypeSelectHelper.m        2019-06-20 14:43:47 UTC (rev 
23885)
+++ trunk/bibdesk/BDSKTypeSelectHelper.m        2019-06-20 15:00:33 UTC (rev 
23886)
@@ -45,8 +45,6 @@
 
 #define BDSKWindowDidChangeFirstResponderNotification 
@"BDSKWindowDidChangeFirstResponderNotification"
 
-static char BDSKTypeSelectHelperObservationContext;
-
 @interface NSString (BDSKTypeAheadHelperExtensions)
 - (BOOL)containsStringStartingAtWord:(NSString *)string 
options:(NSInteger)mask range:(NSRange)range;
 @end
@@ -61,7 +59,6 @@
 - (void)stopTimer;
 - (void)startTimer;
 - (void)typeSelectSearchTimeout:(id)sender;
-- (void)stopObserving;
 - (NSTimeInterval)timeoutInterval;
 - (NSUInteger)indexOfMatchedItemAfterIndex:(NSUInteger)selectedIndex;
 - (NSTextView *)editor;
@@ -87,7 +84,7 @@
 
 - (void)dealloc;
 {
-    [self stopObserving];
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
     delegate = nil;
     [timer invalidate];
     BDSKDESTROY(timer);
@@ -157,15 +154,11 @@
 
 - (void)searchWithEvent:(NSEvent *)keyEvent;
 {
-    NSWindow *window = [NSApp keyWindow];
     NSText *editor = [self editor];
     
     if (processing == NO) {
-        [self stopObserving];
-        [[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(typeSelectSearchTimeout:) 
name:NSWindowDidResignKeyNotification object:window];
-        [[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(typeSelectSearchTimeout:) name:NSWindowWillCloseNotification 
object:window];
-        [window addObserver:self forKeyPath:@"firstResponder" options:0 
context:&BDSKTypeSelectHelperObservationContext];
-        observedWindow = [window retain];
+        [[NSNotificationCenter defaultCenter] removeObserver:self];
+        [[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(typeSelectSearchTimeout:) name:NSWindowWillCloseNotification 
object:[NSApp keyWindow]];
         if ([editor delegate])
             [(BDSKTypeSelectHelper *)[editor delegate] 
typeSelectSearchTimeout:nil];
         [editor setDelegate:self];
@@ -295,7 +288,7 @@
 {
     if([delegate 
respondsToSelector:@selector(typeSelectHelper:updateSearchString:)])
         [delegate typeSelectHelper:self updateSearchString:nil];
-    [self stopObserving];
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
     [self stopTimer];
     processing = NO;
     
@@ -377,21 +370,6 @@
     return NSNotFound;
 }
 
-- (void)stopObserving {
-    if (observedWindow) {
-        @try { [observedWindow removeObserver:self 
forKeyPath:@"firstResponder"]; }
-        @catch(id e) {}
-        BDSKDESTROY(observedWindow);
-    }
-    [[NSNotificationCenter defaultCenter] removeObserver:self];
-}
-
-- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object 
change:(NSDictionary *)change context:(void *)context {
-    if (context == &BDSKTypeSelectHelperObservationContext)
-        [self typeSelectSearchTimeout:nil];
-    else
-        [super observeValueForKeyPath:keyPath ofObject:object change:change 
context:context];
-}
 @end
 
 #pragma mark -

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