diff options
| author | YAMAMOTO Mitsuharu | 2005-10-07 07:38:47 +0000 |
|---|---|---|
| committer | YAMAMOTO Mitsuharu | 2005-10-07 07:38:47 +0000 |
| commit | 41124e0631d5db6b8702a1cf0797ba4622308c98 (patch) | |
| tree | a664fc3a65a3fbba5f00a2134b114f832820ba98 /src | |
| parent | 10a07952dc440e65684d1f45dd9a752b6b26ea80 (diff) | |
| download | emacs-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.c | 44 |
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) |