mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-23 15:11:37 +00:00
Trigger the action of NSButton and NSPopUpButton in their keyDown
method only for the Space key. Fix key view loop of NSAlert panels and NSSavePanel so that all buttons become reachable with the Tab key. Make Escape key equivalent of the Cancel button of NSSavePanel. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@27011 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
c1fd62315e
commit
39f911eae7
4 changed files with 12 additions and 13 deletions
|
@ -431,12 +431,9 @@ setControl(NSView* content, id control, NSString *title)
|
|||
[defButton setImagePosition: NSImageRight];
|
||||
[defButton setImage: [NSImage imageNamed: @"common_ret"]];
|
||||
[defButton setAlternateImage: [NSImage imageNamed: @"common_retH"]];
|
||||
[defButton setRefusesFirstResponder: YES];
|
||||
|
||||
altButton = [self _makeButtonWithRect: rect];
|
||||
[altButton setRefusesFirstResponder: YES];
|
||||
othButton = [self _makeButtonWithRect: rect];
|
||||
[othButton setRefusesFirstResponder: YES];
|
||||
|
||||
rect.size.height = 80.0;
|
||||
scroll = makeScrollViewWithRect(rect);
|
||||
|
|
|
@ -482,11 +482,8 @@ static id buttonCellClass = nil;
|
|||
character = [characters characterAtIndex: 0];
|
||||
}
|
||||
|
||||
// Handle SPACE or RETURN to perform a click
|
||||
if ((character == NSNewlineCharacter)
|
||||
|| (character == NSEnterCharacter)
|
||||
|| (character == NSCarriageReturnCharacter)
|
||||
|| ([characters isEqualToString: @" "]))
|
||||
/* Handle SPACE to perform a click */
|
||||
if ([characters isEqualToString: @" "])
|
||||
{
|
||||
[self performClick: self];
|
||||
return;
|
||||
|
|
|
@ -468,6 +468,14 @@ this to return nil to indicate that we have no context menu.
|
|||
case NSNewlineCharacter:
|
||||
case NSEnterCharacter:
|
||||
case NSCarriageReturnCharacter:
|
||||
/* Handle Enter and Return keys only when the menu is visible.
|
||||
The button's action to pop up the menu is initiated only by
|
||||
the Space key similar to other buttons. */
|
||||
{
|
||||
NSMenuView *menuView = [[_cell menu] menuRepresentation];
|
||||
if ([[menuView window] isVisible] == NO)
|
||||
break;
|
||||
}
|
||||
case ' ':
|
||||
{
|
||||
int selectedIndex;
|
||||
|
|
|
@ -249,7 +249,6 @@ setPath(NSBrowser *browser, NSString *path)
|
|||
|
||||
r = NSMakeRect (43, 6, 27, 27);
|
||||
button = [[NSButton alloc] initWithFrame: r];
|
||||
[button setRefusesFirstResponder: YES];
|
||||
[button setBordered: YES];
|
||||
image = [NSImage imageNamed: @"common_Home"];
|
||||
[button setImage: image];
|
||||
|
@ -265,7 +264,6 @@ setPath(NSBrowser *browser, NSString *path)
|
|||
|
||||
r = NSMakeRect (78, 6, 27, 27);
|
||||
button = [[NSButton alloc] initWithFrame: r];
|
||||
[button setRefusesFirstResponder: YES];
|
||||
[button setBordered: YES];
|
||||
image = [NSImage imageNamed: @"common_Mount"];
|
||||
[button setImage: image];
|
||||
|
@ -281,7 +279,6 @@ setPath(NSBrowser *browser, NSString *path)
|
|||
|
||||
r = NSMakeRect (112, 6, 27, 27);
|
||||
button = [[NSButton alloc] initWithFrame: r];
|
||||
[button setRefusesFirstResponder: YES];
|
||||
[button setBordered: YES];
|
||||
image = [NSImage imageNamed: @"common_Unmount"];
|
||||
[button setImage: image];
|
||||
|
@ -297,7 +294,6 @@ setPath(NSBrowser *browser, NSString *path)
|
|||
|
||||
r = NSMakeRect (148, 6, 71, 27);
|
||||
button = [[NSButton alloc] initWithFrame: r];
|
||||
[button setRefusesFirstResponder: YES];
|
||||
[button setBordered: YES];
|
||||
[button setTitle: @"Cancel"];
|
||||
[button setImagePosition: NSNoImage];
|
||||
|
@ -305,6 +301,8 @@ setPath(NSBrowser *browser, NSString *path)
|
|||
[button setAction: @selector(cancel:)];
|
||||
[button setAutoresizingMask: NSViewMinXMargin];
|
||||
[button setTag: NSFileHandlingPanelCancelButton];
|
||||
[button setKeyEquivalent: @"\e"];
|
||||
[button setKeyEquivalentModifierMask: 0];
|
||||
[_bottomView addSubview: button];
|
||||
[lastKeyView setNextKeyView: button];
|
||||
lastKeyView = button;
|
||||
|
@ -312,7 +310,6 @@ setPath(NSBrowser *browser, NSString *path)
|
|||
|
||||
r = NSMakeRect (228, 6, 71, 27);
|
||||
_okButton = [[NSButton alloc] initWithFrame: r];
|
||||
[button setRefusesFirstResponder: YES];
|
||||
[_okButton setBordered: YES];
|
||||
[_okButton setTitle: @"OK"];
|
||||
[_okButton setImagePosition: NSImageRight];
|
||||
|
|
Loading…
Reference in a new issue