Revision: 18328
http://bibdesk.svn.sourceforge.net/bibdesk/?rev=18328&view=rev
Author: hofman
Date: 2011-12-21 12:15:16 +0000 (Wed, 21 Dec 2011)
Log Message:
-----------
restore first responder after committing an edit through binding, as that is
not always done
Modified Paths:
--------------
trunk/bibdesk/BDSKFindController.m
trunk/bibdesk/BDSKSearchGroupSheetController.m
Modified: trunk/bibdesk/BDSKFindController.m
===================================================================
--- trunk/bibdesk/BDSKFindController.m 2011-12-21 07:35:46 UTC (rev 18327)
+++ trunk/bibdesk/BDSKFindController.m 2011-12-21 12:15:16 UTC (rev 18328)
@@ -225,6 +225,27 @@
[view1 release];
}
+- (BOOL)commitEditing {
+ id firstResponder = [[self window] firstResponder];
+ NSTextView *editor = nil;
+ NSRange selection;
+ if ([firstResponder isKindOfClass:[NSTextView class]]) {
+ editor = firstResponder;
+ selection = [editor selectedRange];
+ if ([editor isFieldEditor])
+ firstResponder = [firstResponder delegate];
+ }
+ if ([objectController commitEditing]) {
+ if (editor && [[self window] firstResponder] != editor &&
+ [[self window] makeFirstResponder:firstResponder] &&
+ [[editor string] length] >= NSMaxRange(selection))
+ [editor setSelectedRange:selection];
+ return YES;
+ } else {
+ return NO;
+ }
+}
+
#pragma mark Accessors
- (NSInteger)operation {
@@ -746,7 +767,7 @@
NSBeep();
[statusBar setStringValue:NSLocalizedString(@"Cannot replace in
external items", @"Status message")];
return;
- }else if([objectController commitEditing] == NO){
+ }else if([self commitEditing] == NO){
NSBeep();
[statusBar setStringValue:NSLocalizedString(@"There were
invalid values", @"Status message")];
return;
@@ -812,7 +833,7 @@
NSBeep();
[statusBar setStringValue:NSLocalizedString(@"Cannot replace in
external items", @"Status message")];
return;
- }else if([objectController commitEditing] == NO){
+ }else if([self commitEditing] == NO){
NSBeep();
[statusBar setStringValue:NSLocalizedString(@"There were
invalid values", @"Status message")];
return;
Modified: trunk/bibdesk/BDSKSearchGroupSheetController.m
===================================================================
--- trunk/bibdesk/BDSKSearchGroupSheetController.m 2011-12-21 07:35:46 UTC
(rev 18327)
+++ trunk/bibdesk/BDSKSearchGroupSheetController.m 2011-12-21 12:15:16 UTC
(rev 18328)
@@ -395,9 +395,25 @@
#pragma mark NSEditor
- (BOOL)commitEditing {
+ id firstResponder = [[self window] firstResponder];
+ NSTextView *editor = nil;
+ NSRange selection;
+
+ if ([firstResponder isKindOfClass:[NSTextView class]]) {
+ editor = firstResponder;
+ selection = [editor selectedRange];
+ if ([editor isFieldEditor])
+ firstResponder = [firstResponder delegate];
+ }
+
if ([objectController commitEditing] == NO)
return NO;
+ if (editor && [[self window] firstResponder] != editor &&
+ [[self window] makeFirstResponder:firstResponder] &&
+ [[editor string] length] >= NSMaxRange(selection))
+ [editor setSelectedRange:selection];
+
NSString *message = nil;
if ([self isZoom] == NO && ([NSString isEmptyString:[serverInfo name]] ||
[NSString isEmptyString:[serverInfo database]])) {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create
new or port existing apps to sell to consumers worldwide. Explore the
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit