Hold on. It does segfaults, but this is not me, this is the isRTL
function implemented in Cursor.cpp. It's fails when it tries to ask a
LyxText from the CursorSlice it occurs in.
Can someone help me fix this function?
How can I get to the head of the paragraph (or some place not in an
inset) that the inset my cursor is currently pointing at, is found?
Any references?
On 4/29/07, Abdelrazak Younes <[EMAIL PROTECTED]> wrote:
Elazar Leibovich wrote:
> Checks the directionality of the paragraph, and makes cursor Forward
> requests into cursor backwards and vice versa.
> Extremly easy, relies on cursor's isRTL() method.
So it does not segfault aymore?
> Index: src/mathed/InsetMathNest.cpp
> ===================================================================
> --- src/mathed/InsetMathNest.cpp (revision 18090)
> +++ src/mathed/InsetMathNest.cpp (working copy)
> @@ -494,6 +494,10 @@
> cur.autocorrect() = false;
> cur.clearTargetX();
> cur.macroModeClose();
> + if (cur.isRTL() )
No space please: if (cur.isRTL())
> + goto goto_char_backwards;
> +
> + goto_char_forwards:
Hum... using goto is not recommended practice. Couldn't you just use our
"standard" dispatch method instead?
if (cur.isRTL())
cur.dispatch(FuncRequest(LFUN_CHAR_BACKWARD));
Maybe you'll need an additional flag to indicate that RTL should not be
checked in LFUN_CHAR_BACKWARD.
Anyway, this is only style issues. More importantly, Dov, Mostafa, could
you please confirm that what Elazar is proposing is the right thing to do?
I seem to remember that some Arabic countries read math LTR and others
RTL so maybe we need some kind of preference settings. Personally I'd be
in favour of a cursor that follows the logical screen oriented arrows,
be it for text or for math. But I am not just a novice; you guys should
do some research for the perfect solution. If there is no such perfect
solution we should allow the user to fine tune this via preference settings.
Abdel.