Fixes NSMenuView.m

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@4833 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Michael Silva 1999-09-05 21:29:11 +00:00
parent 02af1de982
commit 80ba6f7d92
2 changed files with 52 additions and 1 deletions

View file

@ -1,3 +1,23 @@
1999-09-05 Michael Hanni <mhanni@sprintmail.com>
* Source/NSMenuView.m: fix nagging bug reported by Gregory John
Casamento <gcasamen@my-deja.com>.
1999-09-04 Michael Hanni <mhanni@sprintmail.com>
* Model/GMAppKit.m: patch from Tim Bissell
<tim.bissell@dresdnerkb.com> adds proper decoding/encoding of
NSButtonCell titles.
* Source/NSSlider.m: patch to add missing unlockFocus.
* Source/NSBrowserCell.m: patch from Tim Bissell
<tim.bissell@dresdnerkb.com> set NSBrowerCell to be initially not
editable (mimcs OS 4.2 behaviour).
* Source/NSWorkspace.m: added patch from Tim Bissell
<tim.bissell@dresdnerkb.com> which adds special GNUstep
functionality to NSWorkspace (for FileViewer.app).
* Headers/NSWorkspace.h: added method definitions for additions by
Tim Bissell <tim.bissell@dresdnerkb.com>
Fri Sep 3 22:45:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* Source/NSAttributedString.m: implemented (untested) most of the

View file

@ -148,6 +148,7 @@ static float GSMenuBarHeight = 25.0; // a guess.
}
} else if (index >= 0) {
if ( menuv_highlightedItemIndex != -1 ) {
anItem = [menuv_items_link objectAtIndex: menuv_highlightedItemIndex];
[anItem highlight: NO
@ -500,6 +501,36 @@ static float GSMenuBarHeight = 25.0; // a guess.
if (index >= 0 && index < theCount)
{
if (menuv_highlightedItemIndex > -1)
{
BOOL finished = NO;
NSMenu *aMenu = menuv_menu;
while (!finished)
{ // "forward"cursive menu find.
if ([aMenu attachedMenu])
{
aMenu = [aMenu attachedMenu];
}
else
finished = YES;
}
finished = NO;
while (!finished)
{ // Recursive menu close & deselect.
if ([aMenu supermenu] && aMenu != menuv_menu)
{
[[[aMenu supermenu] menuView] setHighlightedItemIndex: -1];
aMenu = [aMenu supermenu];
}
else
finished = YES;
[window flushWindow];
}
}
[self setHighlightedItemIndex: index];
lastIndex = index;
}
@ -632,8 +663,8 @@ static float GSMenuBarHeight = 25.0; // a guess.
else
{
// FIXME, Michael. This might be needed... or not?
NSLog(@"This is the final else... its evil\n");
/* FIXME this code is just plain nasty.
NSLog(@"This is the final else... its evil\n");
if (lastIndex >= 0 && lastIndex < theCount)
{
[self setHighlightedItemIndex: -1];