777 |
|
|
778 |
|
|
779 |
/* Recalculate the bitmaps to show in the fringes of window W. |
/* Recalculate the bitmaps to show in the fringes of window W. |
780 |
If FORCE_P is 0, only mark rows with modified bitmaps for update in |
Only mark rows with modified bitmaps for update in redraw_fringe_bitmaps_p. |
781 |
redraw_fringe_bitmaps_p; else mark all rows for update. */ |
|
782 |
|
If KEEP_CURRENT_P is 0, update current_matrix too. */ |
783 |
|
|
784 |
int |
int |
785 |
update_window_fringes (w, force_p) |
update_window_fringes (w, keep_current_p) |
786 |
struct window *w; |
struct window *w; |
787 |
int force_p; |
int keep_current_p; |
788 |
{ |
{ |
789 |
struct glyph_row *row, *cur = 0; |
struct glyph_row *row, *cur = 0; |
790 |
int yb = window_text_bottom_y (w); |
int yb = window_text_bottom_y (w); |
944 |
else |
else |
945 |
right = NO_FRINGE_BITMAP; |
right = NO_FRINGE_BITMAP; |
946 |
|
|
947 |
if (force_p |
if (row->y != cur->y |
|
|| row->y != cur->y |
|
948 |
|| row->visible_height != cur->visible_height |
|| row->visible_height != cur->visible_height |
949 |
|| row->ends_at_zv_p != cur->ends_at_zv_p |
|| row->ends_at_zv_p != cur->ends_at_zv_p |
950 |
|| left != cur->left_fringe_bitmap |
|| left != cur->left_fringe_bitmap |
953 |
|| right_face_id != cur->right_fringe_face_id |
|| right_face_id != cur->right_fringe_face_id |
954 |
|| cur->redraw_fringe_bitmaps_p) |
|| cur->redraw_fringe_bitmaps_p) |
955 |
{ |
{ |
956 |
redraw_p = row->redraw_fringe_bitmaps_p = cur->redraw_fringe_bitmaps_p = 1; |
redraw_p = row->redraw_fringe_bitmaps_p = 1; |
957 |
cur->left_fringe_bitmap = left; |
if (!keep_current_p) |
958 |
cur->right_fringe_bitmap = right; |
{ |
959 |
cur->left_fringe_face_id = left_face_id; |
cur->redraw_fringe_bitmaps_p = 1; |
960 |
cur->right_fringe_face_id = right_face_id; |
cur->left_fringe_bitmap = left; |
961 |
|
cur->right_fringe_bitmap = right; |
962 |
|
cur->left_fringe_face_id = left_face_id; |
963 |
|
cur->right_fringe_face_id = right_face_id; |
964 |
|
} |
965 |
} |
} |
966 |
|
|
967 |
if (row->overlay_arrow_bitmap != cur->overlay_arrow_bitmap) |
if (row->overlay_arrow_bitmap != cur->overlay_arrow_bitmap) |
979 |
row[-1].redraw_fringe_bitmaps_p = cur[-1].redraw_fringe_bitmaps_p = 1; |
row[-1].redraw_fringe_bitmaps_p = cur[-1].redraw_fringe_bitmaps_p = 1; |
980 |
} |
} |
981 |
|
|
982 |
return redraw_p; |
return redraw_p && !keep_current_p; |
983 |
} |
} |
984 |
|
|
985 |
|
|