Revision: 3729
http://skim-app.svn.sourceforge.net/skim-app/?rev=3729&view=rev
Author: hofman
Date: 2008-04-14 03:59:16 -0700 (Mon, 14 Apr 2008)
Log Message:
-----------
Type checking, because the pboard types are not documented.
Modified Paths:
--------------
trunk/SKFontPicker.m
Modified: trunk/SKFontPicker.m
===================================================================
--- trunk/SKFontPicker.m 2008-04-14 10:27:28 UTC (rev 3728)
+++ trunk/SKFontPicker.m 2008-04-14 10:59:16 UTC (rev 3729)
@@ -433,18 +433,23 @@
@try {
if ([type isEqualToString:SKNSFontPanelDescriptorsPboardType]) {
NSData *data = [pboard dataForType:type];
- NSDictionary *dict = [NSKeyedUnarchiver
unarchiveObjectWithData:data];
- NSArray *fontDescriptors = [dict
objectForKey:SKNSFontCollectionFontDescriptors];
- NSFontDescriptor *fontDescriptor = [fontDescriptors count] ?
[fontDescriptors objectAtIndex:0] : nil;
- NSNumber *size = [[fontDescriptor fontAttributes]
objectForKey:NSFontSizeAttribute];
- if (size == nil)
- size = [dict objectForKey:NSFontSizeAttribute];
- float fontSize = size ? [size floatValue] : [self fontSize];
- droppedFont = [NSFont fontWithDescriptor:fontDescriptor
size:fontSize];
+ NSDictionary *dict = [data isKindOfClass:[NSData class]] ?
[NSKeyedUnarchiver unarchiveObjectWithData:data] : nil;
+ if ([dict isKindOfClass:[NSDictionary class]]) {
+ NSArray *fontDescriptors = [dict
objectForKey:SKNSFontCollectionFontDescriptors];
+ NSFontDescriptor *fontDescriptor = ([fontDescriptors
isKindOfClass:[NSArray class]] && [fontDescriptors count]) ? [fontDescriptors
objectAtIndex:0] : nil;
+ if ([fontDescriptor isKindOfClass:[NSFontDescriptor class]]) {
+ NSNumber *size = [[fontDescriptor fontAttributes]
objectForKey:NSFontSizeAttribute];
+ if (size == nil)
+ size = [dict objectForKey:NSFontSizeAttribute];
+ float fontSize = [size
respondsToSelector:@selector(floatValue)] ? [size floatValue] : [self fontSize];
+ droppedFont = [NSFont fontWithDescriptor:fontDescriptor
size:fontSize];
+ }
+ }
} else if ([type isEqualToString:SKNSFontPanelFamiliesPboardType]) {
NSArray *families = [pboard propertyListForType:type];
- NSString *family = [families count] ? [families objectAtIndex:0] :
nil;
- droppedFont = [[NSFontManager sharedFontManager] convertFont:[self
font] toFamily:family];
+ NSString *family = ([families isKindOfClass:[NSArray class]] &&
[families count]) ? [families objectAtIndex:0] : nil;
+ if ([family isKindOfClass:[NSString class]])
+ droppedFont = [[NSFontManager sharedFontManager]
convertFont:[self font] toFamily:family];
}
}
@catch (id exception) {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit