use consistent (and mockable) char width in tests appcode/144.901 clion/144.900
authorDmitry Batrak <Dmitry.Batrak@jetbrains.com>
Fri, 6 Nov 2015 14:14:39 +0000 (17:14 +0300)
committerDmitry Batrak <Dmitry.Batrak@jetbrains.com>
Fri, 6 Nov 2015 14:36:39 +0000 (17:36 +0300)
platform/platform-impl/src/com/intellij/openapi/editor/impl/FontInfo.java

index 84b06477b95377521e1e3f4cb258e510384c9dbb..6f0f44d7d348a940900118a5ae700ea6045893f2 100644 (file)
@@ -16,6 +16,7 @@
 package com.intellij.openapi.editor.impl;
 
 import com.intellij.openapi.editor.ex.util.EditorUIUtil;
+import com.intellij.openapi.editor.impl.view.FontLayoutService;
 import com.intellij.openapi.util.SystemInfo;
 import com.intellij.openapi.util.registry.Registry;
 import com.intellij.util.ui.UIUtil;
@@ -188,7 +189,7 @@ public class FontInfo {
   public int charWidth(char c) {
     final FontMetrics metrics = fontMetrics();
     if (c < 128) return charWidth[c];
-    return metrics.charWidth(c);
+    return FontLayoutService.getInstance().charWidth(metrics, c);
   }
 
   private FontMetrics fontMetrics() {
@@ -199,8 +200,8 @@ public class FontInfo {
       EditorUIUtil.setupAntialiasing(graphics);
       graphics.setFont(myFont);
       myFontMetrics = graphics.getFontMetrics();
-      for (int i = 0; i < 128; i++) {
-        charWidth[i] = myFontMetrics.charWidth(i);
+      for (char c = 0; c < 128; c++) {
+        charWidth[c] = FontLayoutService.getInstance().charWidth(myFontMetrics, c);
       }
     }
     return myFontMetrics;