diff --git a/ChangeLog b/ChangeLog index dacedd574..7e1d37d0f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-05-30 Wolfgang Lux + + * Source/NSFont.m (-initWithCoder:): Fixed keyed decoding to fall + back to a standard font only if the named font was not found. + 2010-05-30 Wolfgang Lux * Source/NSTextView.m (NSTextViewUndoObject, -performUndo:, diff --git a/Source/NSFont.m b/Source/NSFont.m index 8eaa576b2..b62f5e90e 100644 --- a/Source/NSFont.m +++ b/Source/NSFont.m @@ -1322,27 +1322,26 @@ static BOOL flip_hack; float size = [aDecoder decodeFloatForKey: @"NSSize"]; DESTROY(self); - if ([aDecoder containsValueForKey: @"NSfFlags"]) - { - int flags = [aDecoder decodeIntForKey: @"NSfFlags"]; - // FIXME - if (flags == 16) - { - return RETAIN([NSFont controlContentFontOfSize: size]); - } - else if (flags == 20) - { - return RETAIN([NSFont labelFontOfSize: size]); - } - else if (flags == 22) - { - return RETAIN([NSFont titleBarFontOfSize: size]); - } - } - self = RETAIN([NSFont fontWithName: name size: size]); if (self == nil) { + if ([aDecoder containsValueForKey: @"NSfFlags"]) + { + int flags = [aDecoder decodeIntForKey: @"NSfFlags"]; + // FIXME + if (flags == 16) + { + return RETAIN([NSFont controlContentFontOfSize: size]); + } + else if (flags == 20) + { + return RETAIN([NSFont labelFontOfSize: size]); + } + else if (flags == 22) + { + return RETAIN([NSFont titleBarFontOfSize: size]); + } + } self = RETAIN([NSFont systemFontOfSize: size]); }