From: Kevin Lamonte Date: Sun, 29 Mar 2015 02:15:37 +0000 (-0400) Subject: make Windows look like X11, why does this work X-Git-Url: https://git.nikiroo.be/?a=commitdiff_plain;h=847a4bc53c549c277d479ee904ab45be7f5e4dec;p=fanfix-jexer.git make Windows look like X11, why does this work --- diff --git a/src/jexer/io/SwingScreen.java b/src/jexer/io/SwingScreen.java index be8fb67..1b3d8a4 100644 --- a/src/jexer/io/SwingScreen.java +++ b/src/jexer/io/SwingScreen.java @@ -168,6 +168,16 @@ public final class SwingScreen extends Screen { */ private int maxDescent = 0; + /** + * System-dependent Y adjustment for text in the character cell. + */ + private int textAdjustY = 0; + + /** + * System-dependent X adjustment for text in the character cell. + */ + private int textAdjustX = 0; + /** * Top pixel absolute location. */ @@ -350,6 +360,11 @@ public final class SwingScreen extends Screen { // This also produces the same number, but works better for ugly // monospace. textHeight = fm.getMaxAscent() + maxDescent - leading; + + if (System.getProperty("os.name").startsWith("Windows")) { + textAdjustY = -1; + textAdjustX = 0; + } } /** @@ -477,8 +492,10 @@ public final class SwingScreen extends Screen { gr.setColor(attrToForegroundColor(lCellColor)); char [] chars = new char[1]; chars[0] = lCell.getChar(); - gr.drawChars(chars, 0, 1, xPixel, - yPixel + textHeight - maxDescent); + gr.drawChars(chars, 0, 1, xPixel + textAdjustX, + yPixel + textHeight - maxDescent + + textAdjustY); + if (lCell.isUnderline()) { gr.fillRect(xPixel, yPixel + textHeight - 2, textWidth, 2);