summaryrefslogtreecommitdiff
path: root/cocoa/font.m
diff options
context:
space:
mode:
authorSven Weidauer <sven.weidauer@gmail.com>2011-01-28 13:22:34 +0000
committerSven Weidauer <sven.weidauer@gmail.com>2011-01-28 13:22:34 +0000
commitb2482982dd202fdd728abf036841c1c043713227 (patch)
tree68b9d9a571afe015984caf4878ca928bb345e5bf /cocoa/font.m
parentccac2289cfe4a46e5819b0fb3de68d930f3f9dd8 (diff)
downloadnetsurf-b2482982dd202fdd728abf036841c1c043713227.tar.gz
netsurf-b2482982dd202fdd728abf036841c1c043713227.tar.bz2
More font-related fixes.
svn path=/trunk/netsurf/; revision=11516
Diffstat (limited to 'cocoa/font.m')
-rw-r--r--cocoa/font.m14
1 files changed, 6 insertions, 8 deletions
diff --git a/cocoa/font.m b/cocoa/font.m
index f2f38793c..795b04802 100644
--- a/cocoa/font.m
+++ b/cocoa/font.m
@@ -149,7 +149,7 @@ static inline NSUInteger cocoa_glyph_for_location( NSLayoutManager *layout, CGFl
NSUInteger glyphIndex = [layout glyphIndexForPoint: NSMakePoint( cocoa_px_to_pt( x ), 0 )
inTextContainer: cocoa_text_container
fractionOfDistanceThroughGlyph: &fraction];
- if (fraction > 0) ++glyphIndex;
+ if (fraction >= 1.0) ++glyphIndex;
return glyphIndex;
}
@@ -171,9 +171,11 @@ static NSLayoutManager *cocoa_prepare_layout_manager( const char *bytes, size_t
const plot_font_style_t *style )
{
if (NULL == bytes || 0 == length) return nil;
-
+
+ NSString *string = [[[NSString alloc] initWithBytes: bytes length:length encoding:NSUTF8StringEncoding] autorelease];
+ if (string == nil) return nil;
+
static NSLayoutManager *layout = nil;
-
if (nil == layout) {
cocoa_text_container = [[NSTextContainer alloc] initWithContainerSize: NSMakeSize( CGFLOAT_MAX, CGFLOAT_MAX )];
[cocoa_text_container setLineFragmentPadding: 0];
@@ -182,9 +184,6 @@ static NSLayoutManager *cocoa_prepare_layout_manager( const char *bytes, size_t
[layout addTextContainer: cocoa_text_container];
}
-
- NSString *string = [[[NSString alloc] initWithBytes: bytes length:length encoding:NSUTF8StringEncoding] autorelease];
-
static NSString *oldString = 0;
static plot_font_style_t oldStyle = { 0 };
@@ -203,14 +202,13 @@ static NSLayoutManager *cocoa_prepare_layout_manager( const char *bytes, size_t
[attributes release];
attributes = [cocoa_font_attributes( style ) retain];
}
-
+
[cocoa_text_storage release];
cocoa_text_storage = [[NSTextStorage alloc] initWithString: string attributes: attributes];
[cocoa_text_storage addLayoutManager: layout];
[layout ensureLayoutForTextContainer: cocoa_text_container];
-
return layout;
}