diff src/redisplay-tty.c @ 265:8efd647ea9ca r20-5b31

Import from CVS: tag r20-5b31
author cvs
date Mon, 13 Aug 2007 10:25:37 +0200
parents 677f6a0ee643
children c5d627a313b1
line wrap: on
line diff
--- a/src/redisplay-tty.c	Mon Aug 13 10:24:47 2007 +0200
+++ b/src/redisplay-tty.c	Mon Aug 13 10:25:37 2007 +0200
@@ -183,10 +183,21 @@
 {
   struct console *c = XCONSOLE (DEVICE_CONSOLE (d));
 
+  CONSOLE_TTY_CURSOR_X (c) = CONSOLE_TTY_FINAL_CURSOR_X (c);
+  CONSOLE_TTY_CURSOR_Y (c) = CONSOLE_TTY_FINAL_CURSOR_Y (c);
   FORCE_CURSOR_UPDATE (c);
   Lstream_flush (XLSTREAM (CONSOLE_TTY_DATA (c)->outstream));
 }
 
+static void
+tty_set_final_cursor_coords (struct frame *f, int y, int x)
+{
+  struct console *c = XCONSOLE (FRAME_CONSOLE (f));
+
+  CONSOLE_TTY_FINAL_CURSOR_X (c) = x;
+  CONSOLE_TTY_FINAL_CURSOR_Y (c) = y;
+}
+
 /*****************************************************************************
  tty_output_display_block
 
@@ -547,6 +558,8 @@
   if (TTY_SE (c).clr_frame)
     {
       OUTPUT1 (c, TTY_SE (c).clr_frame);
+      CONSOLE_TTY_REAL_CURSOR_X (c) = 0;
+      CONSOLE_TTY_REAL_CURSOR_Y (c) = 0;
 #ifdef NOT_SURE
       FRAME_CURSOR_X (f) = 0;
       FRAME_CURSOR_Y (f) = 0;
@@ -956,7 +969,7 @@
 			    f->height, f->width, 1);
 
 	  /* And then stick the cursor there. */
-	  cmgoto (f, f->height, 0);
+	  tty_set_final_cursor_coords (f, f->height, 0);
 	  tty_output_end (XDEVICE (dev));
 	}
     }
@@ -1543,4 +1556,5 @@
   CONSOLE_HAS_METHOD (tty, output_end);
   CONSOLE_HAS_METHOD (tty, flash);
   CONSOLE_HAS_METHOD (tty, ring_bell);
+  CONSOLE_HAS_METHOD (tty, set_final_cursor_coords);
 }