aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2013-07-02 18:52:07 +0300
committerEli Zaretskii2013-07-02 18:52:07 +0300
commitbcffb5caf88767615b86aea7372b56c29dadfbc9 (patch)
tree5882a42a26625c8af75fbc50642b04ff5380f8d1 /src
parent2c41e781945c57d170b41205a4af3acefa5cc85c (diff)
downloademacs-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/ChangeLog13
-rw-r--r--src/xdisp.c7
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 @@
12013-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
12013-07-02 Jan Djärv <jan.h.d@swipnet.se> 142013-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;