aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/de/mud/terminal/vt320.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/mud/terminal/vt320.java')
-rw-r--r--app/src/main/java/de/mud/terminal/vt320.java20
1 files changed, 5 insertions, 15 deletions
diff --git a/app/src/main/java/de/mud/terminal/vt320.java b/app/src/main/java/de/mud/terminal/vt320.java
index ab4a90d..dc95bea 100644
--- a/app/src/main/java/de/mud/terminal/vt320.java
+++ b/app/src/main/java/de/mud/terminal/vt320.java
@@ -162,23 +162,13 @@ public void setScreenSize(int c, int r, boolean broadcast) {
super.setScreenSize(c,r,false);
- boolean cursorChanged = false;
-
- // Don't let the cursor go off the screen.
- if (C >= c) {
- C = c - 1;
- cursorChanged = true;
- }
-
+ // Don't let the cursor go off the screen. Scroll down if needed.
if (R >= r) {
- R = r - 1;
- cursorChanged = true;
- }
-
- if (cursorChanged) {
- setCursorPosition(C, R);
- redraw();
+ screenBase += R - (r - 1);
+ setWindowBase(screenBase);
}
+ R = getCursorRow();
+ C = getCursorColumn();
if (broadcast) {
setWindowSize(c, r); /* broadcast up */