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: Wed, 08 Sep 2004 08:12:58 -0400

Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.904 emacs/src/xdisp.c:1.905
*** emacs/src/xdisp.c:1.904     Fri Sep  3 20:43:38 2004
--- emacs/src/xdisp.c   Tue Sep  7 20:51:16 2004
***************
*** 10659,10664 ****
--- 10659,10665 ----
    int string_before_pos;
    int x = row->x;
    int cursor_x = x;
+   int cursor_from_overlay_pos = 0;
    int pt_old = PT - delta;
  
    /* Skip over glyphs not having an object at the start of the row.
***************
*** 10684,10689 ****
--- 10685,10696 ----
          string_start = NULL;
          x += glyph->pixel_width;
          ++glyph;
+         if (cursor_from_overlay_pos
+             && last_pos > cursor_from_overlay_pos)
+           {
+             cursor_from_overlay_pos = 0;
+             cursor = 0;
+           }
        }
        else
        {
***************
*** 10693,10702 ****
          /* Skip all glyphs from string.  */
          do
            {
              if ((cursor == NULL || glyph > cursor)
                  && !NILP (Fget_char_property (make_number ((glyph)->charpos),
!                                               Qcursor, (glyph)->object)))
                {
                  cursor = glyph;
                  cursor_x = x;
                }
--- 10700,10715 ----
          /* Skip all glyphs from string.  */
          do
            {
+             int pos;
              if ((cursor == NULL || glyph > cursor)
                  && !NILP (Fget_char_property (make_number ((glyph)->charpos),
!                                               Qcursor, (glyph)->object))
!                 && (pos = string_buffer_position (w, glyph->object,
!                                                   string_before_pos),
!                     (pos == 0   /* From overlay */
!                      || pos == pt_old)))
                {
+                 cursor_from_overlay_pos = pos == 0 ? last_pos : 0;
                  cursor = glyph;
                  cursor_x = x;
                }




reply via email to

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