mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-25 06:51:08 +00:00
mouseDown selections fixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@16414 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
063710aa5f
commit
4fb42475cb
1 changed files with 25 additions and 12 deletions
|
@ -301,16 +301,25 @@ this to return nil to indicate that we have no context menu.
|
|||
|
||||
- (BOOL) performKeyEquivalent: (NSEvent*)theEvent
|
||||
{
|
||||
NSMenu *m = [self menu];
|
||||
NSMenu *m = [self menu];
|
||||
NSMenuItem *oldSelectedItem = [_cell selectedItem];
|
||||
|
||||
if (m != nil)
|
||||
{
|
||||
if ([m performKeyEquivalent: theEvent])
|
||||
{
|
||||
/* If the key equivalent was performed, redisplay ourselves
|
||||
* to account for potential changes in the selected item.
|
||||
*/
|
||||
[self setNeedsDisplay: YES];
|
||||
// pullsDown does not change selected item
|
||||
if ([_cell pullsDown])
|
||||
{
|
||||
[self selectItem: oldSelectedItem];
|
||||
}
|
||||
else
|
||||
{
|
||||
/* If the key equivalent was performed, redisplay ourselves
|
||||
* to account for potential changes in the selected item.
|
||||
*/
|
||||
[self setNeedsDisplay: YES];
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
|
@ -323,7 +332,7 @@ this to return nil to indicate that we have no context menu.
|
|||
NSWindow *menuWindow = [mr window];
|
||||
NSEvent *e;
|
||||
NSPoint p;
|
||||
int lastSelectedItem = [mr highlightedItemIndex];
|
||||
int lastSelectedItem = [_cell indexOfSelectedItem];
|
||||
int highlightedItemIndex;
|
||||
|
||||
if ([self isEnabled] == NO)
|
||||
|
@ -350,13 +359,17 @@ this to return nil to indicate that we have no context menu.
|
|||
[NSApp sendEvent: e];
|
||||
|
||||
// Selection remains unchanged if selected item is disabled
|
||||
highlightedItemIndex = [mr highlightedItemIndex];
|
||||
if (highlightedItemIndex >= 0)
|
||||
// or mouse left menu.
|
||||
highlightedItemIndex = [_cell indexOfSelectedItem];
|
||||
if ((highlightedItemIndex >= 0
|
||||
&& [[self itemAtIndex: highlightedItemIndex] isEnabled] == NO)
|
||||
|| highlightedItemIndex == lastSelectedItem)
|
||||
{
|
||||
if ([[self itemAtIndex: highlightedItemIndex] isEnabled] == NO)
|
||||
{
|
||||
[mr setHighlightedItemIndex: lastSelectedItem];
|
||||
}
|
||||
[mr setHighlightedItemIndex: lastSelectedItem];
|
||||
}
|
||||
else
|
||||
{
|
||||
[mr setHighlightedItemIndex: highlightedItemIndex];
|
||||
}
|
||||
|
||||
// Dismiss the popUp
|
||||
|
|
Loading…
Reference in a new issue