From 12644d7d7134e6be5d9c302f971d51bc46c7c299 Mon Sep 17 00:00:00 2001 From: Alexander Malmberg Date: Mon, 16 Sep 2002 18:23:13 +0000 Subject: [PATCH] Fix encoding/decoding of matrixExplicitlySet. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@14466 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 6 ++++++ Source/NSFont.m | 22 +++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2a3ac8297..951d38396 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2002-09-16 19:28 Alexander Malmberg + + * Source/NSFont (+initialize, -initWithCoder:, -encodeWithCoder:): + Encode and decode matrixExplicitlySet, and guess its value when + loading old encoded objects. + 2002-09-16 19:05 Alexander Malmberg * Source/NSWindow.m (-close): Retain and release self to make sure diff --git a/Source/NSFont.m b/Source/NSFont.m index ec8265f4b..64ae60aab 100644 --- a/Source/NSFont.m +++ b/Source/NSFont.m @@ -165,6 +165,8 @@ setNSFont(NSString* key, NSFont* font) { defaults = RETAIN([NSUserDefaults standardUserDefaults]); } + + [self setVersion: 2]; } } @@ -771,16 +773,34 @@ setNSFont(NSString* key, NSFont* font) { [aCoder encodeObject: fontName]; [aCoder encodeArrayOfObjCType: @encode(float) count: 6 at: matrix]; + [aCoder encodeValueOfObjCType: @encode(BOOL) at: &matrixExplicitlySet]; } - (id) initWithCoder: (NSCoder*)aDecoder { + int version = [aDecoder versionForClassName: + @"NSFont"]; id name; float fontMatrix[6]; name = [aDecoder decodeObject]; [aDecoder decodeArrayOfObjCType: @encode(float) count: 6 at: fontMatrix]; - return [self initWithName: name matrix: fontMatrix]; + self = [self initWithName: name matrix: fontMatrix]; + + if (version == 2) + { + [aDecoder decodeValueOfObjCType: @encode(BOOL) at: &matrixExplicitlySet]; + } + else + { + if (fontMatrix[0] == fontMatrix[3] + && fontMatrix[1]==0.0 + && fontMatrix[2]==0.0) + { + matrixExplicitlySet = NO; + } + } + return self; } @end /* NSFont */