Commit 3390454c authored by YAMAMOTO Mitsuharu's avatar YAMAMOTO Mitsuharu

* xdisp.c (expose_window): Save original value of phys_cursor_on_p and turn...

* xdisp.c (expose_window): Save original value of phys_cursor_on_p and turn window cursor on if cleared (Bug#9415).
parent edb7b4dc
2011-09-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* xdisp.c (expose_window): Save original value of phys_cursor_on_p
and turn window cursor on if cleared (Bug#9415).
2011-09-07 Andreas Schwab <schwab@linux-m68k.org>
* search.c (boyer_moore): Take unibyte characters from pattern
......
......@@ -24249,7 +24249,7 @@ expose_window (w, fr)
{
int yb = window_text_bottom_y (w);
struct glyph_row *row;
int cursor_cleared_p;
int cursor_cleared_p, phys_cursor_on_p;
struct glyph_row *first_overlapping_row, *last_overlapping_row;
TRACE ((stderr, "expose_window (%d, %d, %d, %d)\n",
......@@ -24269,6 +24269,13 @@ expose_window (w, fr)
else
cursor_cleared_p = 0;
/* If the row containing the cursor extends face to end of line,
then expose_area might overwrite the cursor outside the
rectangle and thus notice_overwritten_cursor might clear
w->phys_cursor_on_p. We remember the original value and
check later if it is changed. */
phys_cursor_on_p = w->phys_cursor_on_p;
/* Update lines intersecting rectangle R. */
first_overlapping_row = last_overlapping_row = NULL;
for (row = w->current_matrix->rows;
......@@ -24335,7 +24342,8 @@ expose_window (w, fr)
x_draw_vertical_border (w);
/* Turn the cursor on again. */
if (cursor_cleared_p)
if (cursor_cleared_p
|| (phys_cursor_on_p && !w->phys_cursor_on_p))
update_window_cursor (w, 1);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment