]> git.eshelyaron.com Git - emacs.git/commitdiff
(set_cursor_from_row): Fix last change. Only use 'cursor'
authorKim F. Storm <storm@cua.dk>
Tue, 7 Sep 2004 20:53:43 +0000 (20:53 +0000)
committerKim F. Storm <storm@cua.dk>
Tue, 7 Sep 2004 20:53:43 +0000 (20:53 +0000)
property from text property or overlay strings at point.

lisp/ChangeLog
src/xdisp.c

index 044f72d6b22a451d79aef51b4c557b42c24137ac..c8da0ca418e49d7b7ef7f0d965de1d3627ff6daf 100644 (file)
@@ -1,3 +1,9 @@
+2004-09-07  Kim F. Storm  <storm@cua.dk>
+
+       * term.el (term-window-width): Only use full window width on
+       window system if overflow-newline-into-fringe is enabled.
+       (term-mode): Don't disable overflow-newline-into-fringe.
+
 2004-09-07  Stefan  <monnier@iro.umontreal.ca>
 
        * newcomment.el (uncomment-region-default, comment-region-default):
index 409d32449e5e6d646def61e1bfd9885af8ead4c5..4de7166589d8bdd38fe07a19177d2b97e8bc01e7 100644 (file)
@@ -10659,6 +10659,7 @@ set_cursor_from_row (w, row, matrix, delta, delta_bytes, dy, dvpos)
   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,6 +10685,12 @@ set_cursor_from_row (w, row, matrix, delta, delta_bytes, dy, dvpos)
          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,10 +10700,16 @@ set_cursor_from_row (w, row, matrix, delta, delta_bytes, dy, dvpos)
          /* Skip all glyphs from string.  */
          do
            {
+             int pos;
              if ((cursor == NULL || glyph > cursor)
                  && !NILP (Fget_char_property (make_number ((glyph)->charpos),
-                                               Qcursor, (glyph)->object)))
+                                               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;
                }