Small keyed decoing improvements.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@29963 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Fred Kiefer 2010-03-15 12:55:12 +00:00
parent a798a9bcc1
commit 58afda1e08
5 changed files with 24 additions and 11 deletions

View file

@ -1,3 +1,13 @@
2010-03-15 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSCursor.m (-initWithCoder:): Retain self, when using a
predefined cursor.
* Source/NSClipView.m (-initWithCoder:): Undo Greg's hack to
retain the cursor.
* Source/NSView.m (-initWithCoder:),
* Source/NSTextView.m (-initWithCoder:): Small improvements for
keyed decoding.
2010-03-15 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSTextView.m (-replaceTextContainer:): Retain self not

View file

@ -778,8 +778,7 @@ static inline NSRect integralRect (NSRect rect, NSView *view)
[self setAutoresizesSubviews: YES];
[self setBackgroundColor: [aDecoder decodeObjectForKey: @"NSBGColor"]];
[self setDocumentCursor:
RETAIN([aDecoder decodeObjectForKey: @"NSCursor"])];
[self setDocumentCursor: [aDecoder decodeObjectForKey: @"NSCursor"]];
if ([aDecoder containsValueForKey: @"NScvFlags"])
{

View file

@ -547,7 +547,8 @@ backgroundColorHint:(NSColor *)bg
// FIXME
self = [NSCursor arrowCursor];
}
RETAIN(self);
if ([aDecoder containsValueForKey: @"NSHotSpot"])
{
hotSpot = [aDecoder decodePointForKey: @"NSHotSpot"];

View file

@ -831,6 +831,9 @@ that makes decoding and encoding compatible with the old code.
- (id) initWithCoder: (NSCoder *)aDecoder
{
self = [super initWithCoder: aDecoder];
if (!self)
return nil;
if ([aDecoder allowsKeyedCoding])
{
id textString = nil;
@ -919,8 +922,9 @@ that makes decoding and encoding compatible with the old code.
if ([aDecoder containsValueForKey: @"NSTVFlags"])
{
[aDecoder decodeIntForKey: @"NSTVFlags"];
//[aDecoder decodeIntForKey: @"NSTVFlags"];
}
//@"NSDragTypes"
// Don't add the string if it's nil
if(textString != nil)

View file

@ -4518,7 +4518,9 @@ static NSView* findByTag(NSView *view, int aTag, unsigned *level)
NSArray *subs;
// decode the superclass...
[super initWithCoder: aDecoder];
self = [super initWithCoder: aDecoder];
if (!self)
return nil;
// initialize these here, since they're needed in either case.
// _frameMatrix = [NSAffineTransform new]; // Map fromsuperview to frame
@ -4545,14 +4547,11 @@ static NSView* findByTag(NSView *view, int aTag, unsigned *level)
}
// Set bounds rectangle
_bounds.origin = NSZeroPoint;
_bounds.size = _frame.size;
if ([aDecoder containsValueForKey: @"NSBounds"])
{
_bounds = [aDecoder decodeRectForKey: @"NSBounds"];
}
else
{
_bounds.origin = NSZeroPoint;
_bounds.size = _frame.size;
[self setBounds: [aDecoder decodeRectForKey: @"NSBounds"]];
}
_sub_views = [NSMutableArray new];