>>>>> "Stefan" == Stefan Schimanski <[EMAIL PROTECTED]> writes:
Stefan> As promised, here it is. This is the way to do it. It includes Stefan> our former patch for cursorLeft/Right to avoid boundary magic Stefan> on RTL- boundaries. A few comments: first, I am not sure I like +bool Text::isRTL(Buffer const & buffer, pit_type pit, pos_type pos, bool boundary) const +{ + Paragraph const & par = getPar(pit); + return getFont(buffer, par, pos).isVisibleRightToLeft(); +} I'd prefer a free standing function bool isRtL(Buffer const & buffer, CursorSlice const & sl, bool boundary) { Paragraph const & par = getPar(pit); return getFont(buffer, sl.paragraph(), sl.pos()).isVisibleRightToLeft(); } There should be a test for non-text mode somewhere where we return false. With this in place, I am not even sure we need to pass the rtl flag around, actually. JMarc