aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2009-04-15 18:37:48 +0000
committerKenny Root <kenny@the-b.org>2009-04-15 18:37:48 +0000
commit303f859f96971df46c3f9660f76ed2d7ce4d8a2d (patch)
treed78fb59304002ad6b0aef7250182860ef54b5e9c /src
parent38577ca7d986e9992a0c48a4e014bbc30f08a2cb (diff)
downloadconnectbot-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.java20
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));