+2002-02-01 Kim F. Storm <storm@cua.dk>
+
+ * xterm.c (x_erase_phys_cursor): Don't erase cursor if cursor row
+ is invisible. This can happen if cursor is on top line of a
+ window, and we switch to a buffer with a header line.
+
+ * w32term.c (x_erase_phys_cursor): ditto.
+
2002-02-01 Eli Zaretskii <eliz@is.elta.co.il>
* coding.c (decode_composition_emacs_mule): Give up if NCOMPONENT
if (!cursor_row->enabled_p)
goto mark_cursor_off;
+ /* If row is completely invisible, don't attempt to delete a cursor which
+ isn't there. This can happen if cursor is at top of a window, and
+ we switch to a buffer with a header line in that window. */
+ if (cursor_row->visible_height <= 0)
+ goto mark_cursor_off;
+
/* This can happen when the new row is shorter than the old one.
In this case, either x_draw_glyphs or clear_end_of_line
should have cleared the cursor. Note that we wouldn't be
if (!cursor_row->enabled_p)
goto mark_cursor_off;
+ /* If row is completely invisible, don't attempt to delete a cursor which
+ isn't there. This can happen if cursor is at top of a window, and
+ we switch to a buffer with a header line in that window. */
+ if (cursor_row->visible_height <= 0)
+ goto mark_cursor_off;
+
/* This can happen when the new row is shorter than the old one.
In this case, either x_draw_glyphs or clear_end_of_line
should have cleared the cursor. Note that we wouldn't be