Index: NSControl.m =================================================================== RCS file: /cvsroot/gnustep/gnustep/core/gui/Source/NSControl.m,v retrieving revision 1.64 diff -u -r1.64 NSControl.m --- NSControl.m 24 Sep 2004 16:35:41 -0000 1.64 +++ NSControl.m 25 Sep 2004 23:07:02 -0000 @@ -181,56 +181,76 @@ - (void) setDoubleValue: (double)aDouble { NSCell *selected = [self selectedCell]; - - [self abortEditing]; + BOOL wasEditing = [self abortEditing]; [selected setDoubleValue: aDouble]; if (![selected isKindOfClass: actionCellClass]) [self setNeedsDisplay: YES]; + + if (wasEditing) + { + [[self window] makeFirstResponder: self]; + } } - (void) setFloatValue: (float)aFloat { NSCell *selected = [self selectedCell]; - - [self abortEditing]; + BOOL wasEditing = [self abortEditing]; [selected setFloatValue: aFloat]; if (![selected isKindOfClass: actionCellClass]) [self setNeedsDisplay: YES]; + + if (wasEditing) + { + [[self window] makeFirstResponder: self]; + } } - (void) setIntValue: (int)anInt { NSCell *selected = [self selectedCell]; - - [self abortEditing]; + BOOL wasEditing = [self abortEditing]; [selected setIntValue: anInt]; if (![selected isKindOfClass: actionCellClass]) [self setNeedsDisplay: YES]; + + if (wasEditing) + { + [[self window] makeFirstResponder: self]; + } } - (void) setStringValue: (NSString *)aString { NSCell *selected = [self selectedCell]; - - [self abortEditing]; + BOOL wasEditing = [self abortEditing]; [selected setStringValue: aString]; if (![selected isKindOfClass: actionCellClass]) [self setNeedsDisplay: YES]; + + if (wasEditing) + { + [[self window] makeFirstResponder: self]; + } } - (void) setObjectValue: (id)anObject { NSCell *selected = [self selectedCell]; - - [self abortEditing]; + BOOL wasEditing = [self abortEditing]; [selected setObjectValue: anObject]; if (![selected isKindOfClass: actionCellClass]) [self setNeedsDisplay: YES]; + + if (wasEditing) + { + [[self window] makeFirstResponder: self]; + } } - (void) setNeedsDisplay