diff options
| author | Eli Zaretskii | 2013-07-02 18:52:07 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2013-07-02 18:52:07 +0300 |
| commit | bcffb5caf88767615b86aea7372b56c29dadfbc9 (patch) | |
| tree | 5882a42a26625c8af75fbc50642b04ff5380f8d1 /src | |
| parent | 2c41e781945c57d170b41205a4af3acefa5cc85c (diff) | |
| download | emacs-bcffb5caf88767615b86aea7372b56c29dadfbc9.tar.gz emacs-bcffb5caf88767615b86aea7372b56c29dadfbc9.zip | |
Fix bug #2749 with overflow-newline-into-fringe in visual-line-mode.
src/xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
word-wrap, so that overflow-newline-into-fringe would work in
visual-line-mode.
(move_it_in_display_line_to): When the last scanned display
element fits exactly on the display line, and
overflow-newline-into-fringe is non-nil, but wrap_it is valid,
don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
wrap point and return MOVE_LINE_CONTINUED. Fixes problems with
finding buffer position that corresponds to pixel coordinates,
e.g. in buffer_posn_from_coords.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 13 | ||||
| -rw-r--r-- | src/xdisp.c | 7 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index d5907c64942..76cd156a0e7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,16 @@ | |||
| 1 | 2013-07-02 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow | ||
| 4 | word-wrap, so that overflow-newline-into-fringe would work in | ||
| 5 | visual-line-mode. (Bug#2749) | ||
| 6 | (move_it_in_display_line_to): When the last scanned display | ||
| 7 | element fits exactly on the display line, and | ||
| 8 | overflow-newline-into-fringe is non-nil, but wrap_it is valid, | ||
| 9 | don't return MOVE_NEWLINE_OR_CR, but instead back up to the last | ||
| 10 | wrap point and return MOVE_LINE_CONTINUED. Fixes problems with | ||
| 11 | finding buffer position that corresponds to pixel coordinates, | ||
| 12 | e.g. in buffer_posn_from_coords. | ||
| 13 | |||
| 1 | 2013-07-02 Jan Djärv <jan.h.d@swipnet.se> | 14 | 2013-07-02 Jan Djärv <jan.h.d@swipnet.se> |
| 2 | 15 | ||
| 3 | * process.c (handle_child_signal): Call catch_child_signal if | 16 | * process.c (handle_child_signal): Call catch_child_signal if |
diff --git a/src/xdisp.c b/src/xdisp.c index 3fa80336a61..b61b976a401 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -378,8 +378,7 @@ static Lisp_Object Qline_height; | |||
| 378 | && ((IT)->bidi_it.paragraph_dir == R2L \ | 378 | && ((IT)->bidi_it.paragraph_dir == R2L \ |
| 379 | ? (WINDOW_LEFT_FRINGE_WIDTH ((IT)->w) > 0) \ | 379 | ? (WINDOW_LEFT_FRINGE_WIDTH ((IT)->w) > 0) \ |
| 380 | : (WINDOW_RIGHT_FRINGE_WIDTH ((IT)->w) > 0)) \ | 380 | : (WINDOW_RIGHT_FRINGE_WIDTH ((IT)->w) > 0)) \ |
| 381 | && (IT)->current_x == (IT)->last_visible_x \ | 381 | && (IT)->current_x == (IT)->last_visible_x) |
| 382 | && (IT)->line_wrap != WORD_WRAP) | ||
| 383 | 382 | ||
| 384 | #else /* !HAVE_WINDOW_SYSTEM */ | 383 | #else /* !HAVE_WINDOW_SYSTEM */ |
| 385 | #define IT_OVERFLOW_NEWLINE_INTO_FRINGE(it) 0 | 384 | #define IT_OVERFLOW_NEWLINE_INTO_FRINGE(it) 0 |
| @@ -8539,7 +8538,9 @@ move_it_in_display_line_to (struct it *it, | |||
| 8539 | result = MOVE_LINE_CONTINUED; | 8538 | result = MOVE_LINE_CONTINUED; |
| 8540 | break; | 8539 | break; |
| 8541 | } | 8540 | } |
| 8542 | if (ITERATOR_AT_END_OF_LINE_P (it)) | 8541 | if (ITERATOR_AT_END_OF_LINE_P (it) |
| 8542 | && (it->line_wrap != WORD_WRAP | ||
| 8543 | || wrap_it.sp < 0)) | ||
| 8543 | { | 8544 | { |
| 8544 | result = MOVE_NEWLINE_OR_CR; | 8545 | result = MOVE_NEWLINE_OR_CR; |
| 8545 | break; | 8546 | break; |