aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2011-07-15 13:50:03 +0300
committerEli Zaretskii2011-07-15 13:50:03 +0300
commitaa4b6df6901fc736db6165f379857f448abbe711 (patch)
treeceaef3fb90bb1dd7a696712ea196f7698457f08a
parent75c68aa1b696fca51177e7777e4aa9838a1b4660 (diff)
downloademacs-aa4b6df6901fc736db6165f379857f448abbe711.tar.gz
emacs-aa4b6df6901fc736db6165f379857f448abbe711.zip
Fix vertical cursor motion in Speedbar frames under bidi display.
src/xdisp.c (move_it_in_display_line_to): Fix vertical motion with bidi redisplay when a line includes both an image and is truncated.
-rw-r--r--src/ChangeLog6
-rw-r--r--src/xdisp.c16
2 files changed, 21 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 21563806ece..3bb02a71865 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
12011-07-15 Eli Zaretskii <eliz@gnu.org>
2
3 * xdisp.c (move_it_in_display_line_to): Fix vertical motion with
4 bidi redisplay when a line includes both an image and is
5 truncated.
6
12011-07-14 Paul Eggert <eggert@cs.ucla.edu> 72011-07-14 Paul Eggert <eggert@cs.ucla.edu>
2 8
3 Fix minor problems found by static checking. 9 Fix minor problems found by static checking.
diff --git a/src/xdisp.c b/src/xdisp.c
index 69a66a4db64..50da62ca0ab 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -7928,7 +7928,14 @@ move_it_in_display_line_to (struct it *it,
7928 || IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) 7928 || IT_OVERFLOW_NEWLINE_INTO_FRINGE (it))
7929 { 7929 {
7930 if (!get_next_display_element (it) 7930 if (!get_next_display_element (it)
7931 || BUFFER_POS_REACHED_P ()) 7931 || BUFFER_POS_REACHED_P ()
7932 /* If we are past TO_CHARPOS, but never saw any
7933 character positions smaller than TO_CHARPOS,
7934 return MOVE_POS_MATCH_OR_ZV, like the
7935 unidirectional display did. */
7936 || ((op & MOVE_TO_POS) != 0
7937 && !saw_smaller_pos
7938 && IT_CHARPOS (*it) > to_charpos))
7932 { 7939 {
7933 result = MOVE_POS_MATCH_OR_ZV; 7940 result = MOVE_POS_MATCH_OR_ZV;
7934 break; 7941 break;
@@ -7939,6 +7946,13 @@ move_it_in_display_line_to (struct it *it,
7939 break; 7946 break;
7940 } 7947 }
7941 } 7948 }
7949 else if ((op & MOVE_TO_POS) != 0
7950 && !saw_smaller_pos
7951 && IT_CHARPOS (*it) > to_charpos)
7952 {
7953 result = MOVE_POS_MATCH_OR_ZV;
7954 break;
7955 }
7942 result = MOVE_LINE_TRUNCATED; 7956 result = MOVE_LINE_TRUNCATED;
7943 break; 7957 break;
7944 } 7958 }