aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu2005-10-07 07:38:47 +0000
committerYAMAMOTO Mitsuharu2005-10-07 07:38:47 +0000
commit41124e0631d5db6b8702a1cf0797ba4622308c98 (patch)
treea664fc3a65a3fbba5f00a2134b114f832820ba98 /src
parent10a07952dc440e65684d1f45dd9a752b6b26ea80 (diff)
downloademacs-41124e0631d5db6b8702a1cf0797ba4622308c98.tar.gz
emacs-41124e0631d5db6b8702a1cf0797ba4622308c98.zip
(redraw_overlapping_rows): Call rif->fix_overlapping_area with new
OVERLAPS arg as redrawn part.
Diffstat (limited to 'src')
-rw-r--r--src/dispnew.c44
1 files changed, 27 insertions, 17 deletions
diff --git a/src/dispnew.c b/src/dispnew.c
index 3975f9ad788..43cfd46da39 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -4035,23 +4035,33 @@ redraw_overlapping_rows (w, yb)
4035 4035
4036 if (row->overlapping_p && i > 0 && bottom_y < yb) 4036 if (row->overlapping_p && i > 0 && bottom_y < yb)
4037 { 4037 {
4038 if (row->used[LEFT_MARGIN_AREA]) 4038 int overlaps = 0;
4039 rif->fix_overlapping_area (w, row, LEFT_MARGIN_AREA); 4039
4040 4040 if (MATRIX_ROW_OVERLAPS_PRED_P (row)
4041 if (row->used[TEXT_AREA]) 4041 && !MATRIX_ROW (w->current_matrix, i - 1)->overlapped_p)
4042 rif->fix_overlapping_area (w, row, TEXT_AREA); 4042 overlaps |= OVERLAPS_PRED;
4043 4043 if (MATRIX_ROW_OVERLAPS_SUCC_P (row)
4044 if (row->used[RIGHT_MARGIN_AREA]) 4044 && !MATRIX_ROW (w->current_matrix, i + 1)->overlapped_p)
4045 rif->fix_overlapping_area (w, row, RIGHT_MARGIN_AREA); 4045 overlaps |= OVERLAPS_SUCC;
4046 4046
4047 /* Record in neighbour rows that ROW overwrites part of their 4047 if (overlaps)
4048 display. */ 4048 {
4049 if (row->phys_ascent > row->ascent && i > 0) 4049 if (row->used[LEFT_MARGIN_AREA])
4050 MATRIX_ROW (w->current_matrix, i - 1)->overlapped_p = 1; 4050 rif->fix_overlapping_area (w, row, LEFT_MARGIN_AREA, overlaps);
4051 if ((row->phys_height - row->phys_ascent 4051
4052 > row->height - row->ascent) 4052 if (row->used[TEXT_AREA])
4053 && bottom_y < yb) 4053 rif->fix_overlapping_area (w, row, TEXT_AREA, overlaps);
4054 MATRIX_ROW (w->current_matrix, i + 1)->overlapped_p = 1; 4054
4055 if (row->used[RIGHT_MARGIN_AREA])
4056 rif->fix_overlapping_area (w, row, RIGHT_MARGIN_AREA, overlaps);
4057
4058 /* Record in neighbour rows that ROW overwrites part of
4059 their display. */
4060 if (overlaps & OVERLAPS_PRED)
4061 MATRIX_ROW (w->current_matrix, i - 1)->overlapped_p = 1;
4062 if (overlaps & OVERLAPS_SUCC)
4063 MATRIX_ROW (w->current_matrix, i + 1)->overlapped_p = 1;
4064 }
4055 } 4065 }
4056 4066
4057 if (bottom_y >= yb) 4067 if (bottom_y >= yb)