From: Kim F. Storm Date: Tue, 7 Sep 2004 20:53:43 +0000 (+0000) Subject: (set_cursor_from_row): Fix last change. Only use 'cursor' X-Git-Tag: ttn-vms-21-2-B4~5040 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a01c5155e8e8672681abe1383f739043deaecdd1;p=emacs.git (set_cursor_from_row): Fix last change. Only use 'cursor' property from text property or overlay strings at point. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 044f72d6b22..c8da0ca418e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2004-09-07 Kim F. Storm + + * 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 * newcomment.el (uncomment-region-default, comment-region-default): diff --git a/src/xdisp.c b/src/xdisp.c index 409d32449e5..4de7166589d 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -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; }