emacs-diffs
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]