Reviewed by Maciej.
authorap <ap@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Jan 2006 10:11:28 +0000 (10:11 +0000)
committerap <ap@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Jan 2006 10:11:28 +0000 (10:11 +0000)
        Affects many layout tests (when running with primary Russian language).

        - Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4759
        'ex' length unit calculation (Some layout tests fail if the system primary language is Russian)

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer xHeight]): Use glyphForCharacter() instead of -[NSFont glyphWithName:].

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@11954 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/ChangeLog
WebKit/WebCoreSupport.subproj/WebTextRenderer.m

index e1a1bc66faaca85d57a3adf7775915131b89eb25..dc73c241c541ffc33cf3115b0aa195ca143d61d2 100644 (file)
@@ -1,3 +1,15 @@
+2006-01-09  Alexey Proskuryakov  <ap@nypop.com>
+
+        Reviewed by Maciej.
+
+        Affects many layout tests (when running with primary Russian language).
+
+        - Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=4759
+        'ex' length unit calculation (Some layout tests fail if the system primary language is Russian)
+
+        * WebCoreSupport.subproj/WebTextRenderer.m:
+        (-[WebTextRenderer xHeight]): Use glyphForCharacter() instead of -[NSFont glyphWithName:].
+
 2006-01-07  Mitz Pettel  <opendarwin.org@mitzpettel.com>
 
         Reviewed by Darin, landed by ap.
index c3dd1fb8a9bd8b744b57d91f93385688c277572f..ccfb078e77e86c446c0cef1c2a2c8db3024d3bac 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2005 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2006 Alexey Proskuryakov
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -128,6 +129,7 @@ static void updateGlyphMapEntry(WebTextRenderer *, UChar32, ATSGlyphRef, WebText
 
 static void freeWidthMap(WidthMap *);
 static void freeGlyphMap(GlyphMap *);
+static inline ATSGlyphRef glyphForCharacter(WebTextRenderer **, UChar32);
 
 // Measuring runs.
 static float CG_floatWidthForRun(WebTextRenderer *, const WebCoreTextRun *, const WebCoreTextStyle *,
@@ -487,7 +489,8 @@ static void destroy(WebTextRenderer *renderer)
 {
     // Measure the actual character "x", because AppKit synthesizes X height rather than getting it from the font.
     // Unfortunately, NSFont will round this for us so we don't quite get the right value.
-    NSGlyph xGlyph = [font.font glyphWithName:@"x"];
+    WebTextRenderer *renderer = [[WebTextRendererFactory sharedFactory] rendererWithFont:font];
+    NSGlyph xGlyph = glyphForCharacter(&renderer, 'x');
     if (xGlyph) {
         NSRect xBox = [font.font boundingRectForGlyph:xGlyph];
         // Use the maximum of either width or height because "x" is nearly square