Commit Diff


commit - 5cf41407571eb39d7eab8d60d87bbec164d9eb82
commit + cfdc726513c95b22b71d9907fc23ae0f7fb77ece
blob - 193ad59a31fc43cb31fde0e2eedc82391cfa8fdd
blob + cf5bbc514b1a5fd0cea4d0559b1a80e15ea20f6d
--- de/mud/terminal/vt320.java
+++ de/mud/terminal/vt320.java
@@ -89,11 +89,20 @@ public abstract class vt320 extends VDUBuffer implemen
   }
 
   public void setScreenSize(int c, int r, boolean broadcast) {
-	System.err.println("setscreensize ("+c+","+r+","+broadcast+")");
-	super.setScreenSize(c,r,false);
-	if (broadcast) {
-	  setWindowSize(c, r); /* broadcast up */
-	}
+    int oldrows = getRows(), oldcols = getColumns();
+
+    if (debug>2) System.err.println("setscreensize ("+c+","+r+","+broadcast+")");
+
+    super.setScreenSize(c,r,false);
+
+    /* Tricky, since the VDUBuffer works strangely. */
+    if (r > oldrows) {
+      setCursorPosition(C, R + (r-oldrows)); 
+      redraw();
+    }
+    if (broadcast) {
+      setWindowSize(c, r); /* broadcast up */
+    }
   }