Fix problems with next key view chain

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30088 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Doug Simons 2010-04-05 16:59:51 +00:00
parent 6e85413971
commit b86e1bf40d
2 changed files with 14 additions and 7 deletions

View file

@ -1,3 +1,9 @@
2010-04-05 Doug Simons <doug.simons@testplant.com>
* Source/NSView.m: Fix the worst problems with key view
chain. There should only be a single next key view, ever,
although possibly multiple previous key views.
2010-04-05 Doug Simons <doug.simons@testplant.com>
* Source/NSWindow.m: Fix crash caused by close being called

View file

@ -3610,13 +3610,9 @@ static NSView* findByTag(NSView *view, int aTag, unsigned *level)
GSIArrayRemoveItemAtIndex(pKV(tmp), count);
}
}
/*
* If the view still points to us, make a note of it in the
* 'next' array while making space for the new link to aView.
*/
if (GSIArrayItemAtIndex(pKV(tmp), 0).obj == self)
{
GSIArrayInsertItem(nKV(self), (GSIArrayItem)nil, 0);
GSIArraySetItemAtIndex(pKV(tmp), (GSIArrayItem)nil, 0);
}
}
@ -4558,8 +4554,13 @@ static NSView* findByTag(NSView *view, int aTag, unsigned *level)
_autoresizes_subviews = YES;
_autoresizingMask = NSViewNotSizable;
_coordinates_valid = NO;
_nextKeyView = 0;
_previousKeyView = 0;
/*
* Note: don't zero _nextKeyView and _previousKeyView, as the key view
* chain may already have been established by super's initWithCoder:
*
* _nextKeyView = 0;
* _previousKeyView = 0;
*/
_rFlags.flipped_view = [self isFlipped];