aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim F. Storm2004-02-08 23:19:15 +0000
committerKim F. Storm2004-02-08 23:19:15 +0000
commit5cbd733a778d8e2a69c87e316d02bbbd720de240 (patch)
tree8c1b265ac30b84beefd0cbe5d5924a5039057cb0
parent2251a6f2b7e145d7e143f79437c2d673b4f96c4b (diff)
downloademacs-5cbd733a778d8e2a69c87e316d02bbbd720de240.tar.gz
emacs-5cbd733a778d8e2a69c87e316d02bbbd720de240.zip
(row_equal_p): Compare fringe bitmap faces and overlay
arrows. (update_frame): Do flush_display if force_flush_display_p to ensure display (specifically fringes) are updated in a timely manner when resizing the frame by dragging the mouse. (update_window_line): Update row if overlay arrow changed. (scrolling_window): Redraw fringe bitmaps if fringe bitmap faces or overlay arrow changed.
-rw-r--r--src/dispnew.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/dispnew.c b/src/dispnew.c
index 65d4726b1df..4e4b9c56a8d 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -1516,7 +1516,10 @@ row_equal_p (w, a, b, mouse_face_p)
1516 if (a->fill_line_p != b->fill_line_p 1516 if (a->fill_line_p != b->fill_line_p
1517 || a->cursor_in_fringe_p != b->cursor_in_fringe_p 1517 || a->cursor_in_fringe_p != b->cursor_in_fringe_p
1518 || a->left_fringe_bitmap != b->left_fringe_bitmap 1518 || a->left_fringe_bitmap != b->left_fringe_bitmap
1519 || a->left_fringe_face_id != b->left_fringe_face_id
1519 || a->right_fringe_bitmap != b->right_fringe_bitmap 1520 || a->right_fringe_bitmap != b->right_fringe_bitmap
1521 || a->right_fringe_face_id != b->right_fringe_face_id
1522 || a->overlay_arrow_p != b->overlay_arrow_p
1520 || a->exact_window_width_line_p != b->exact_window_width_line_p 1523 || a->exact_window_width_line_p != b->exact_window_width_line_p
1521 || a->overlapped_p != b->overlapped_p 1524 || a->overlapped_p != b->overlapped_p
1522 || (MATRIX_ROW_CONTINUATION_LINE_P (a) 1525 || (MATRIX_ROW_CONTINUATION_LINE_P (a)
@@ -3826,10 +3829,15 @@ update_frame (f, force_p, inhibit_hairy_id_p)
3826 paused_p = update_window_tree (root_window, force_p); 3829 paused_p = update_window_tree (root_window, force_p);
3827 update_end (f); 3830 update_end (f);
3828 3831
3829#if 0 /* This flush is a performance bottleneck under X, 3832 /* This flush is a performance bottleneck under X,
3830 and it doesn't seem to be necessary anyway. */ 3833 and it doesn't seem to be necessary anyway (in general).
3831 rif->flush_display (f); 3834 It is necessary when resizing the window with the mouse, or
3832#endif 3835 at least the fringes are not redrawn in a timely manner. ++kfs */
3836 if (f->force_flush_display_p)
3837 {
3838 rif->flush_display (f);
3839 f->force_flush_display_p = 0;
3840 }
3833 } 3841 }
3834 else 3842 else
3835 { 3843 {
@@ -4519,6 +4527,7 @@ update_window_line (w, vpos, mouse_face_overwritten_p)
4519 || desired_row->y != current_row->y 4527 || desired_row->y != current_row->y
4520 || desired_row->visible_height != current_row->visible_height 4528 || desired_row->visible_height != current_row->visible_height
4521 || desired_row->cursor_in_fringe_p != current_row->cursor_in_fringe_p 4529 || desired_row->cursor_in_fringe_p != current_row->cursor_in_fringe_p
4530 || desired_row->overlay_arrow_p != current_row->overlay_arrow_p
4522 || current_row->redraw_fringe_bitmaps_p 4531 || current_row->redraw_fringe_bitmaps_p
4523 || desired_row->mode_line_p != current_row->mode_line_p 4532 || desired_row->mode_line_p != current_row->mode_line_p
4524 || desired_row->exact_window_width_line_p != current_row->exact_window_width_line_p 4533 || desired_row->exact_window_width_line_p != current_row->exact_window_width_line_p
@@ -5025,7 +5034,10 @@ scrolling_window (w, header_line_p)
5025 to_overlapped_p = to->overlapped_p; 5034 to_overlapped_p = to->overlapped_p;
5026 if (!from->mode_line_p && !w->pseudo_window_p 5035 if (!from->mode_line_p && !w->pseudo_window_p
5027 && (to->left_fringe_bitmap != from->left_fringe_bitmap 5036 && (to->left_fringe_bitmap != from->left_fringe_bitmap
5028 || to->right_fringe_bitmap != from->right_fringe_bitmap)) 5037 || to->right_fringe_bitmap != from->right_fringe_bitmap
5038 || to->left_fringe_face_id != from->left_fringe_face_id
5039 || to->right_fringe_face_id != from->right_fringe_face_id
5040 || to->overlay_arrow_p != from->overlay_arrow_p))
5029 from->redraw_fringe_bitmaps_p = 1; 5041 from->redraw_fringe_bitmaps_p = 1;
5030 assign_row (to, from); 5042 assign_row (to, from);
5031 to->enabled_p = 1, from->enabled_p = 0; 5043 to->enabled_p = 1, from->enabled_p = 0;