>>>>> "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

Reply via email to