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