aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/org/connectbot/TerminalView.java
diff options
context:
space:
mode:
authorRyan Hansberry <rhansby@gmail.com>2015-10-05 17:07:24 -0700
committerRyan Hansberry <rhansby@gmail.com>2015-10-07 10:28:29 -0700
commit078b44c59e22fa6b14548dcdd1dc5694a57cc1c7 (patch)
treec5bd0fe18a5e4352a1463516e0af005f4b3fd3ef /app/src/main/java/org/connectbot/TerminalView.java
parent3d440c282b7f5286a79a87b0a6bae2158e331230 (diff)
downloadconnectbot-078b44c59e22fa6b14548dcdd1dc5694a57cc1c7.tar.gz
connectbot-078b44c59e22fa6b14548dcdd1dc5694a57cc1c7.tar.bz2
connectbot-078b44c59e22fa6b14548dcdd1dc5694a57cc1c7.zip
Correctly match font size changes in bridge to TextView font size changes.
Diffstat (limited to 'app/src/main/java/org/connectbot/TerminalView.java')
-rw-r--r--app/src/main/java/org/connectbot/TerminalView.java25
1 files changed, 23 insertions, 2 deletions
diff --git a/app/src/main/java/org/connectbot/TerminalView.java b/app/src/main/java/org/connectbot/TerminalView.java
index 0c9ec54..0afa969 100644
--- a/app/src/main/java/org/connectbot/TerminalView.java
+++ b/app/src/main/java/org/connectbot/TerminalView.java
@@ -46,6 +46,7 @@ import android.os.AsyncTask;
import android.os.Build;
import android.support.v4.view.MotionEventCompat;
import android.text.ClipboardManager;
+import android.util.Log;
import android.view.ActionMode;
import android.view.GestureDetector;
import android.view.InputDevice;
@@ -421,7 +422,7 @@ public class TerminalView extends TextView implements FontSizeChangedListener {
private void copyBufferToText() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
- // It is pointless to run this function because the textView is not selectable pre-Honeycomb.
+ // Do not run this function because the textView is not selectable pre-Honeycomb.
return;
}
@@ -463,7 +464,27 @@ public class TerminalView extends TextView implements FontSizeChangedListener {
public void onFontSizeChanged(float size) {
scaleCursors();
setTextSize(size);
- setLineSpacing(0.0f, 1.1f); // KLUDGE: doesnt work on certain font sizes
+
+ int iterationGuard = 100;
+ int heightDifference = 100;
+ float lineSpacingMultiplier = 1.0f;
+
+ while (Math.abs(heightDifference) > 0) {
+ if (heightDifference > 0) {
+ lineSpacingMultiplier += 0.01f;
+ } else {
+ lineSpacingMultiplier -= 0.01f;
+ }
+
+ setLineSpacing(0.0f, lineSpacingMultiplier);
+ heightDifference = bridge.charHeight - getLineHeight();
+
+ iterationGuard--;
+ if (iterationGuard < 0) {
+ break;
+ }
+ }
+
copyBufferToText();
}