diff options
| author | Kim F. Storm | 2004-02-08 23:19:15 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2004-02-08 23:19:15 +0000 |
| commit | 5cbd733a778d8e2a69c87e316d02bbbd720de240 (patch) | |
| tree | 8c1b265ac30b84beefd0cbe5d5924a5039057cb0 | |
| parent | 2251a6f2b7e145d7e143f79437c2d673b4f96c4b (diff) | |
| download | emacs-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.c | 22 |
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; |