Fix bug #6161: Wrong cursor position in bidi text.

If the first character is a separator, we are in RTL text. This character will not be painted on screen and thus we should not count it and skip to the next.

This bug pretty much destroyed cursor placement in RTL text on a row with large gaps.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32116 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Vincent van Ravesteijn 2009-11-20 22:28:51 +00:00
parent e4e49f8978
commit 08feb0e14c

View File

@ -1234,6 +1234,12 @@ pos_type TextMetrics::getColumnNearX(pit_type const pit,
return 0; return 0;
} }
// if the first character is a separator, we are in RTL
// text. This character will not be painted on screen
// and thus we should not count it and skip to the next.
if (par.isSeparator(bidi.vis2log(vc)))
++vc;
while (vc < end && tmpx <= x) { while (vc < end && tmpx <= x) {
c = bidi.vis2log(vc); c = bidi.vis2log(vc);
last_tmpx = tmpx; last_tmpx = tmpx;