diff options
| author | Eli Zaretskii | 2011-07-15 13:50:03 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2011-07-15 13:50:03 +0300 |
| commit | aa4b6df6901fc736db6165f379857f448abbe711 (patch) | |
| tree | ceaef3fb90bb1dd7a696712ea196f7698457f08a /src | |
| parent | 75c68aa1b696fca51177e7777e4aa9838a1b4660 (diff) | |
| download | emacs-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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/xdisp.c | 16 |
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 @@ | |||
| 1 | 2011-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 | |||
| 1 | 2011-07-14 Paul Eggert <eggert@cs.ucla.edu> | 7 | 2011-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 | } |