diff options
author | Kenny Root <kenny@the-b.org> | 2009-04-15 18:37:48 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2009-04-15 18:37:48 +0000 |
commit | 303f859f96971df46c3f9660f76ed2d7ce4d8a2d (patch) | |
tree | d78fb59304002ad6b0aef7250182860ef54b5e9c /src | |
parent | 38577ca7d986e9992a0c48a4e014bbc30f08a2cb (diff) | |
download | connectbot-303f859f96971df46c3f9660f76ed2d7ce4d8a2d.tar.gz connectbot-303f859f96971df46c3f9660f76ed2d7ce4d8a2d.tar.bz2 connectbot-303f859f96971df46c3f9660f76ed2d7ce4d8a2d.zip |
Get rid of magic constants in font height calculation (should help with small font sizes)
Diffstat (limited to 'src')
-rw-r--r-- | src/org/connectbot/service/TerminalBridge.java | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java index f43a870..e618b5b 100644 --- a/src/org/connectbot/service/TerminalBridge.java +++ b/src/org/connectbot/service/TerminalBridge.java @@ -51,7 +51,7 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.Typeface; import android.graphics.Bitmap.Config; -import android.graphics.Paint.FontMetricsInt; +import android.graphics.Paint.FontMetrics; import android.os.Vibrator; import android.text.ClipboardManager; import android.util.Log; @@ -173,7 +173,7 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal public int charWidth = -1; public int charHeight = -1; - private int charDescent = -1; + private int charTop = -1; private float fontSize = -1; @@ -1184,13 +1184,13 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal fontSize = size; // read new metrics to get exact pixel dimensions - FontMetricsInt fm = defaultPaint.getFontMetricsInt(); - charDescent = fm.descent; + FontMetrics fm = defaultPaint.getFontMetrics(); + charTop = (int)Math.ceil(fm.top); float[] widths = new float[1]; defaultPaint.getTextWidths("X", widths); - charWidth = (int)widths[0]; - charHeight = Math.abs(fm.top) + Math.abs(fm.descent) + 1; + charWidth = (int)Math.ceil(widths[0]); + charHeight = (int)Math.ceil(fm.descent - fm.top); // refresh any bitmap with new font size if(parent != null) @@ -1389,14 +1389,14 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal // clear this dirty area with background color defaultPaint.setColor(bg); - canvas.clipRect(c * charWidth, (l * charHeight) - 1, (c + addr) * charWidth, (l + 1) * charHeight); + canvas.clipRect(c * charWidth, l * charHeight, (c + addr) * charWidth, (l + 1) * charHeight); canvas.drawPaint(defaultPaint); // write the text string starting at 'c' for 'addr' number of characters defaultPaint.setColor(fg); if((currAttr & VDUBuffer.INVISIBLE) == 0) canvas.drawText(buffer.charArray[buffer.windowBase + l], c, - addr, c * charWidth, ((l + 1) * charHeight) - charDescent - 2, + addr, c * charWidth, (l * charHeight) - charTop, defaultPaint); // Restore the previous clip region @@ -1474,12 +1474,12 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener, InteractiveCal private int fontSizeCompare(float size, int cols, int rows, int width, int height) { // read new metrics to get exact pixel dimensions defaultPaint.setTextSize(size); - FontMetricsInt fm = defaultPaint.getFontMetricsInt(); + FontMetrics fm = defaultPaint.getFontMetrics(); float[] widths = new float[1]; defaultPaint.getTextWidths("X", widths); int termWidth = (int)widths[0] * cols; - int termHeight = (Math.abs(fm.top) + Math.abs(fm.descent) + 1) * rows; + int termHeight = (int)Math.ceil(fm.descent - fm.top) * rows; Log.d("fontsize", String.format("font size %f resulted in %d x %d", size, termWidth, termHeight)); |