2002-04-23 Gerd Moellmann <gerd@gnu.org>
+ * xterm.c (notice_overwritten_cursor): Handle the special case
+ of the cursor being in the first blank non-text line at the
+ end of a window.
+
* xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor)
(x_draw_phys_cursor_glyph): Set phys_cursor_width here.
(x_display_and_set_cursor): Don't set phys_cursor_width here, for
actually scrolling, so we don't come here. When not
scrolling, the rows above the old cursor row must have
changed, and in this case these rows must have written
- over the cursor image. Likewise if part of the cursor is
- below y1. */
- if ((y0 >= cy0 && y0 < cy1) || (y1 >= cy0 && y1 < cy1))
+ over the cursor image.
+
+ Likewise if part of the cursor is below y1, with the
+ exception of the cursor being in the first blank row at
+ the buffer and window end because update_text_area
+ doesn't draw that row. */
+ if (((y0 >= cy0 && y0 < cy1) || (y1 >= cy0 && y1 < cy1))
+ && w->current_matrix->rows[w->phys_cursor.vpos].displays_text_p)
w->phys_cursor_on_p = 0;
}
}