[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xdisp.c
From: |
Kim F. Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/xdisp.c |
Date: |
Tue, 18 Nov 2003 18:44:12 -0500 |
Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.852 emacs/src/xdisp.c:1.853
*** emacs/src/xdisp.c:1.852 Sun Nov 16 18:44:22 2003
--- emacs/src/xdisp.c Tue Nov 18 18:44:11 2003
***************
*** 2180,2185 ****
--- 2180,2187 ----
else
IT_BYTEPOS (*it) = bytepos;
+ it->start = it->current;
+
/* Compute faces etc. */
reseat (it, it->current.pos, 1);
}
***************
*** 2443,2448 ****
--- 2445,2451 ----
struct glyph_row *row;
{
init_from_display_pos (it, w, &row->start);
+ it->start = row->start;
it->continuation_lines_width = row->continuation_lines_width;
CHECK_IT (it);
}
***************
*** 11580,11585 ****
--- 11583,11593 ----
MOVE_TO_POS | MOVE_TO_X | MOVE_TO_Y);
if (IT_CHARPOS (it) == PT)
w->force_start = Qt;
+ /* IT may overshoot PT if text at PT is invisible. */
+ else if (IT_CHARPOS (it) > PT && CHARPOS (startp) <= PT)
+ w->force_start = Qt;
+
+
}
/* Handle case where place to start displaying has been specified,
***************
*** 14330,14336 ****
prepare_desired_row (row);
row->y = it->current_y;
! row->start = it->current;
row->continuation_lines_width = it->continuation_lines_width;
row->displays_text_p = 1;
row->starts_in_middle_of_char_p = it->starts_in_middle_of_char_p;
--- 14338,14344 ----
prepare_desired_row (row);
row->y = it->current_y;
! row->start = it->start;
row->continuation_lines_width = it->continuation_lines_width;
row->displays_text_p = 1;
row->starts_in_middle_of_char_p = it->starts_in_middle_of_char_p;
***************
*** 14721,14726 ****
--- 14729,14735 ----
it->current_y += row->height;
++it->vpos;
++it->glyph_row;
+ it->start = it->current;
return row->displays_text_p;
}
***************
*** 20284,20292 ****
AREA. The first glyph of the text area can be partially visible.
The first glyphs of other areas cannot. */
start_x = window_box_left_offset (w, area);
- if (area == TEXT_AREA)
- start_x += row->x;
x = start_x;
/* Find the first glyph that must be redrawn. */
while (first < end
--- 20293,20301 ----
AREA. The first glyph of the text area can be partially visible.
The first glyphs of other areas cannot. */
start_x = window_box_left_offset (w, area);
x = start_x;
+ if (area == TEXT_AREA)
+ x += row->x;
/* Find the first glyph that must be redrawn. */
while (first < end