Only test for modal window when it isn't nil.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@25398 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
fredkiefer 2007-08-19 18:01:45 +00:00
parent ddb8506a63
commit 85b36eece3
2 changed files with 23 additions and 17 deletions

View file

@ -1,3 +1,8 @@
2007-08-19 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSButton.m ([performKeyEquivalent:]): Only test for modal
window when it isn't nil.
2007-08-16 Fred Kiefer <FredKiefer@gmx.de> 2007-08-16 Fred Kiefer <FredKiefer@gmx.de>
* Headers/AppKit/NSFontManager.h, * Headers/AppKit/NSFontManager.h,

View file

@ -471,19 +471,19 @@ static id buttonCellClass = nil;
unichar character = 0; unichar character = 0;
if ([characters length] > 0) if ([characters length] > 0)
{ {
character = [characters characterAtIndex: 0]; character = [characters characterAtIndex: 0];
} }
// Handle SPACE or RETURN to perform a click // Handle SPACE or RETURN to perform a click
if ((character == NSNewlineCharacter) if ((character == NSNewlineCharacter)
|| (character == NSEnterCharacter) || (character == NSEnterCharacter)
|| (character == NSCarriageReturnCharacter) || (character == NSCarriageReturnCharacter)
|| ([characters isEqualToString: @" "])) || ([characters isEqualToString: @" "]))
{ {
[self performClick: self]; [self performClick: self];
return; return;
} }
} }
[super keyDown: theEvent]; [super keyDown: theEvent];
@ -506,22 +506,23 @@ static id buttonCellClass = nil;
*/ */
- (BOOL) performKeyEquivalent: (NSEvent *)anEvent - (BOOL) performKeyEquivalent: (NSEvent *)anEvent
{ {
NSWindow *w = [self window]; NSWindow *w = [self window];
NSWindow *mw = [NSApp modalWindow];
if ([self isEnabled] && ([w worksWhenModal] || [NSApp modalWindow] == w)) if ([self isEnabled] && (mw == nil || [w worksWhenModal] || mw == w))
{ {
NSString *key = [self keyEquivalent]; NSString *key = [self keyEquivalent];
if (key != nil && [key isEqual: [anEvent charactersIgnoringModifiers]]) if (key != nil && [key isEqual: [anEvent charactersIgnoringModifiers]])
{ {
unsigned int mask = [self keyEquivalentModifierMask]; unsigned int mask = [self keyEquivalentModifierMask];
if (([anEvent modifierFlags] & mask) == mask) if (([anEvent modifierFlags] & mask) == mask)
{ {
[self performClick: self]; [self performClick: self];
return YES; return YES;
} }
} }
} }
return NO; return NO;
} }