Mercurial > emacs
comparison src/dispnew.c @ 83384:08b4dd6a6e87
Merged from miles@gnu.org--gnu-2005 (patch 578-592)
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-578
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-579
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-580
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-581
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-582
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-583
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-584
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-585
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-586
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-587
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-588
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-589
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-590
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-591
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-592
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-424
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Wed, 12 Oct 2005 16:14:04 +0000 |
parents | 5272862a4865 a82ae68a578e |
children | 573105015a96 |
comparison
equal
deleted
inserted
replaced
83383:2a679c81f552 | 83384:08b4dd6a6e87 |
---|---|
3958 /* Reset flag in W. */ | 3958 /* Reset flag in W. */ |
3959 w->must_be_updated_p = 0; | 3959 w->must_be_updated_p = 0; |
3960 } | 3960 } |
3961 } | 3961 } |
3962 | 3962 |
3963 #ifdef HAVE_WINDOW_SYSTEM | |
3963 | 3964 |
3964 /* Redraw lines from the current matrix of window W that are | 3965 /* Redraw lines from the current matrix of window W that are |
3965 overlapped by other rows. YB is bottom-most y-position in W. */ | 3966 overlapped by other rows. YB is bottom-most y-position in W. */ |
3966 | 3967 |
3967 static void | 3968 static void |
4034 | 4035 |
4035 bottom_y = MATRIX_ROW_BOTTOM_Y (row); | 4036 bottom_y = MATRIX_ROW_BOTTOM_Y (row); |
4036 | 4037 |
4037 if (row->overlapping_p && i > 0 && bottom_y < yb) | 4038 if (row->overlapping_p && i > 0 && bottom_y < yb) |
4038 { | 4039 { |
4039 if (row->used[LEFT_MARGIN_AREA]) | 4040 int overlaps = 0; |
4040 rif->fix_overlapping_area (w, row, LEFT_MARGIN_AREA); | 4041 |
4041 | 4042 if (MATRIX_ROW_OVERLAPS_PRED_P (row) |
4042 if (row->used[TEXT_AREA]) | 4043 && !MATRIX_ROW (w->current_matrix, i - 1)->overlapped_p) |
4043 rif->fix_overlapping_area (w, row, TEXT_AREA); | 4044 overlaps |= OVERLAPS_PRED; |
4044 | 4045 if (MATRIX_ROW_OVERLAPS_SUCC_P (row) |
4045 if (row->used[RIGHT_MARGIN_AREA]) | 4046 && !MATRIX_ROW (w->current_matrix, i + 1)->overlapped_p) |
4046 rif->fix_overlapping_area (w, row, RIGHT_MARGIN_AREA); | 4047 overlaps |= OVERLAPS_SUCC; |
4047 | 4048 |
4048 /* Record in neighbour rows that ROW overwrites part of their | 4049 if (overlaps) |
4049 display. */ | 4050 { |
4050 if (row->phys_ascent > row->ascent && i > 0) | 4051 if (row->used[LEFT_MARGIN_AREA]) |
4051 MATRIX_ROW (w->current_matrix, i - 1)->overlapped_p = 1; | 4052 rif->fix_overlapping_area (w, row, LEFT_MARGIN_AREA, overlaps); |
4052 if ((row->phys_height - row->phys_ascent | 4053 |
4053 > row->height - row->ascent) | 4054 if (row->used[TEXT_AREA]) |
4054 && bottom_y < yb) | 4055 rif->fix_overlapping_area (w, row, TEXT_AREA, overlaps); |
4055 MATRIX_ROW (w->current_matrix, i + 1)->overlapped_p = 1; | 4056 |
4057 if (row->used[RIGHT_MARGIN_AREA]) | |
4058 rif->fix_overlapping_area (w, row, RIGHT_MARGIN_AREA, overlaps); | |
4059 | |
4060 /* Record in neighbour rows that ROW overwrites part of | |
4061 their display. */ | |
4062 if (overlaps & OVERLAPS_PRED) | |
4063 MATRIX_ROW (w->current_matrix, i - 1)->overlapped_p = 1; | |
4064 if (overlaps & OVERLAPS_SUCC) | |
4065 MATRIX_ROW (w->current_matrix, i + 1)->overlapped_p = 1; | |
4066 } | |
4056 } | 4067 } |
4057 | 4068 |
4058 if (bottom_y >= yb) | 4069 if (bottom_y >= yb) |
4059 break; | 4070 break; |
4060 } | 4071 } |
4061 } | 4072 } |
4073 | |
4074 #endif /* HAVE_WINDOW_SYSTEM */ | |
4062 | 4075 |
4063 | 4076 |
4064 #ifdef GLYPH_DEBUG | 4077 #ifdef GLYPH_DEBUG |
4065 | 4078 |
4066 /* Check that no row in the current matrix of window W is enabled | 4079 /* Check that no row in the current matrix of window W is enabled |
4218 } | 4231 } |
4219 | 4232 |
4220 /* Fix the appearance of overlapping/overlapped rows. */ | 4233 /* Fix the appearance of overlapping/overlapped rows. */ |
4221 if (!paused_p && !w->pseudo_window_p) | 4234 if (!paused_p && !w->pseudo_window_p) |
4222 { | 4235 { |
4236 #ifdef HAVE_WINDOW_SYSTEM | |
4223 if (changed_p && rif->fix_overlapping_area) | 4237 if (changed_p && rif->fix_overlapping_area) |
4224 { | 4238 { |
4225 redraw_overlapped_rows (w, yb); | 4239 redraw_overlapped_rows (w, yb); |
4226 redraw_overlapping_rows (w, yb); | 4240 redraw_overlapping_rows (w, yb); |
4227 } | 4241 } |
4242 #endif | |
4228 | 4243 |
4229 /* Make cursor visible at cursor position of W. */ | 4244 /* Make cursor visible at cursor position of W. */ |
4230 set_window_cursor_after_update (w); | 4245 set_window_cursor_after_update (w); |
4231 | 4246 |
4232 #if 0 /* Check that current matrix invariants are satisfied. This is | 4247 #if 0 /* Check that current matrix invariants are satisfied. This is |