aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu2011-09-10 15:54:04 +0900
committerYAMAMOTO Mitsuharu2011-09-10 15:54:04 +0900
commit3390454c621048dcd996f497aba5e807c49dcfaf (patch)
treeff00816edadc8a6eda5f875c2fbab074790db3a0
parentedb7b4dc8b089385d8b0d12081227fc416fae23e (diff)
downloademacs-3390454c621048dcd996f497aba5e807c49dcfaf.tar.gz
emacs-3390454c621048dcd996f497aba5e807c49dcfaf.zip
* xdisp.c (expose_window): Save original value of phys_cursor_on_p and turn window cursor on if cleared (Bug#9415).
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xdisp.c12
2 files changed, 15 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 52f41c4cd73..fa31b3d6f0e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12011-09-10 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * xdisp.c (expose_window): Save original value of phys_cursor_on_p
4 and turn window cursor on if cleared (Bug#9415).
5
12011-09-07 Andreas Schwab <schwab@linux-m68k.org> 62011-09-07 Andreas Schwab <schwab@linux-m68k.org>
2 7
3 * search.c (boyer_moore): Take unibyte characters from pattern 8 * search.c (boyer_moore): Take unibyte characters from pattern
diff --git a/src/xdisp.c b/src/xdisp.c
index b8a8ea7484d..ebd660acc06 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -24249,7 +24249,7 @@ expose_window (w, fr)
24249 { 24249 {
24250 int yb = window_text_bottom_y (w); 24250 int yb = window_text_bottom_y (w);
24251 struct glyph_row *row; 24251 struct glyph_row *row;
24252 int cursor_cleared_p; 24252 int cursor_cleared_p, phys_cursor_on_p;
24253 struct glyph_row *first_overlapping_row, *last_overlapping_row; 24253 struct glyph_row *first_overlapping_row, *last_overlapping_row;
24254 24254
24255 TRACE ((stderr, "expose_window (%d, %d, %d, %d)\n", 24255 TRACE ((stderr, "expose_window (%d, %d, %d, %d)\n",
@@ -24269,6 +24269,13 @@ expose_window (w, fr)
24269 else 24269 else
24270 cursor_cleared_p = 0; 24270 cursor_cleared_p = 0;
24271 24271
24272 /* If the row containing the cursor extends face to end of line,
24273 then expose_area might overwrite the cursor outside the
24274 rectangle and thus notice_overwritten_cursor might clear
24275 w->phys_cursor_on_p. We remember the original value and
24276 check later if it is changed. */
24277 phys_cursor_on_p = w->phys_cursor_on_p;
24278
24272 /* Update lines intersecting rectangle R. */ 24279 /* Update lines intersecting rectangle R. */
24273 first_overlapping_row = last_overlapping_row = NULL; 24280 first_overlapping_row = last_overlapping_row = NULL;
24274 for (row = w->current_matrix->rows; 24281 for (row = w->current_matrix->rows;
@@ -24335,7 +24342,8 @@ expose_window (w, fr)
24335 x_draw_vertical_border (w); 24342 x_draw_vertical_border (w);
24336 24343
24337 /* Turn the cursor on again. */ 24344 /* Turn the cursor on again. */
24338 if (cursor_cleared_p) 24345 if (cursor_cleared_p
24346 || (phys_cursor_on_p && !w->phys_cursor_on_p))
24339 update_window_cursor (w, 1); 24347 update_window_cursor (w, 1);
24340 } 24348 }
24341 } 24349 }