mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-25 16:10:55 +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
|
- (BOOL) performKeyEquivalent: (NSEvent*)theEvent
|
||||||
{
|
{
|
||||||
NSMenu *m = [self menu];
|
NSMenu *m = [self menu];
|
||||||
|
NSMenuItem *oldSelectedItem = [_cell selectedItem];
|
||||||
|
|
||||||
if (m != nil)
|
if (m != nil)
|
||||||
{
|
{
|
||||||
if ([m performKeyEquivalent: theEvent])
|
if ([m performKeyEquivalent: theEvent])
|
||||||
{
|
{
|
||||||
/* If the key equivalent was performed, redisplay ourselves
|
// pullsDown does not change selected item
|
||||||
* to account for potential changes in the selected item.
|
if ([_cell pullsDown])
|
||||||
*/
|
{
|
||||||
[self setNeedsDisplay: YES];
|
[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;
|
return YES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -323,7 +332,7 @@ this to return nil to indicate that we have no context menu.
|
||||||
NSWindow *menuWindow = [mr window];
|
NSWindow *menuWindow = [mr window];
|
||||||
NSEvent *e;
|
NSEvent *e;
|
||||||
NSPoint p;
|
NSPoint p;
|
||||||
int lastSelectedItem = [mr highlightedItemIndex];
|
int lastSelectedItem = [_cell indexOfSelectedItem];
|
||||||
int highlightedItemIndex;
|
int highlightedItemIndex;
|
||||||
|
|
||||||
if ([self isEnabled] == NO)
|
if ([self isEnabled] == NO)
|
||||||
|
@ -350,13 +359,17 @@ this to return nil to indicate that we have no context menu.
|
||||||
[NSApp sendEvent: e];
|
[NSApp sendEvent: e];
|
||||||
|
|
||||||
// Selection remains unchanged if selected item is disabled
|
// Selection remains unchanged if selected item is disabled
|
||||||
highlightedItemIndex = [mr highlightedItemIndex];
|
// or mouse left menu.
|
||||||
if (highlightedItemIndex >= 0)
|
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
|
// Dismiss the popUp
|
||||||
|
|
Loading…
Reference in a new issue