Revision: 2840
          http://skim-app.svn.sourceforge.net/skim-app/?rev=2840&view=rev
Author:   hofman
Date:     2007-09-05 16:32:15 -0700 (Wed, 05 Sep 2007)

Log Message:
-----------
Allow shift-lock modifier for type-select.

Pass a dummy key event when clearing the search to clear any uncompleted dead 
keys, unless someone else took the field editor.

Modified Paths:
--------------
    trunk/SKTypeSelectHelper.m

Modified: trunk/SKTypeSelectHelper.m
===================================================================
--- trunk/SKTypeSelectHelper.m  2007-09-05 20:09:35 UTC (rev 2839)
+++ trunk/SKTypeSelectHelper.m  2007-09-05 23:32:15 UTC (rev 2840)
@@ -169,6 +169,7 @@
         [[NSNotificationCenter defaultCenter] removeObserver:self];
         [[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(typeSelectCleanTimeout:) 
name:SKWindowDidChangeFirstResponderNotification object:keyWindow];
         [[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(typeSelectCleanTimeout:) 
name:NSWindowDidResignKeyNotification object:keyWindow];
+        [fieldEditor setDelegate:self];
         [fieldEditor setString:@""];
     }
     
@@ -211,7 +212,7 @@
 - (BOOL)isSearchEvent:(NSEvent *)keyEvent {
     if ([keyEvent type] != NSKeyDown)
         return NO;
-    if ([keyEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask & 
~NSShiftKeyMask & ~NSAlternateKeyMask)
+    if ([keyEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask & 
~NSShiftKeyMask & ~NSAlternateKeyMask & ~NSAlphaShiftKeyMask)
         return NO;
     
     static NSCharacterSet *nonAlphanumericCharacterSet = nil;
@@ -292,6 +293,24 @@
     [[NSNotificationCenter defaultCenter] removeObserver:self];
     [self stopTimer];
     processing = NO;
+    
+    NSWindow *keyWindow = [NSApp keyWindow];
+    NSText *fieldEditor = [keyWindow fieldEditor:YES forObject:self];
+    if ([fieldEditor delegate] == self) {
+        // we pass a dummy key event to the field editor to clear any hanging 
dead keys (marked text)
+        NSEvent *keyEvent = [NSEvent keyEventWithType:NSKeyDown
+                                             location:NSZeroPoint
+                                        modifierFlags:0
+                                            timestamp:0
+                                         windowNumber:0
+                                              context:nil
+                                           characters:@""
+                          charactersIgnoringModifiers:@""
+                                            isARepeat:NO
+                                              keyCode:0];
+        [fieldEditor interpretKeyEvents:[NSArray arrayWithObject:keyEvent]];
+        [fieldEditor setDelegate:nil];
+    }
 }
 
 - (void)searchWithStickyMatch:(BOOL)sticky {


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

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to