Text storage bugfix and view deallocation bugfix.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@13019 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-Macdonald 2002-03-06 09:49:07 +00:00
parent c10257230e
commit 42789654de
3 changed files with 83 additions and 24 deletions

View file

@ -279,12 +279,18 @@ GSSetDragTypes(NSView* obj, NSArray *types)
- (void) dealloc
{
if (_nextKeyView)
[_nextKeyView setPreviousKeyView: nil];
if (_previousKeyView)
[_previousKeyView setNextKeyView: nil];
while ([_sub_views count] > 0)
{
[[_sub_views lastObject] removeFromSuperviewWithoutNeedingDisplay];
}
if (_nextKeyView != nil)
{
[_nextKeyView setPreviousKeyView: nil];
}
if (_previousKeyView != nil)
{
[_previousKeyView setNextKeyView: nil];
}
RELEASE(_matrixToWindow);
RELEASE(_matrixFromWindow);
RELEASE(_frameMatrix);
@ -464,7 +470,8 @@ GSSetDragTypes(NSView* obj, NSArray *types)
redisplay. </p>
<p> This is dangerous to use during display, since it alters the
rectangles needing display. </p> */
rectangles needing display. In this case, you can use the
-removeFromSuperviewWithoutNeedingDisplay method instead.</p> */
- (void) removeFromSuperview
{
if (_super_view != nil)
@ -475,7 +482,7 @@ GSSetDragTypes(NSView* obj, NSArray *types)
}
/**
<p> Removes the view from the receivers list of subviews and from
<p> Removes aSubview from the receivers list of subviews and from
the responder chain. </p>
<p> Also invokes [aView -viewWillMoveToWindow: nil] to handle
@ -491,8 +498,8 @@ GSSetDragTypes(NSView* obj, NSArray *types)
* which assumes the view is still in the view hierarchy
*/
for (view = [_window firstResponder];
view != nil && [view respondsToSelector:@selector(superview)];
view = [view superview] )
view != nil && [view respondsToSelector:@selector(superview)];
view = [view superview])
{
if (view == aSubview)
{