Andre Poenitz wrote:
Index: src/Bidi.cpp
===================================================================
--- src/Bidi.cpp (revision 18314)
+++ src/Bidi.cpp (working copy)
@@ -12,6 +12,7 @@
#include "Bidi.h"
#include "Buffer.h"
+#include "BufferView.h"
#include "Font.h"
#include "Row.h"
#include "LyXRC.h"
@@ -209,4 +210,18 @@
}
+bool Bidi::reverseDirections(Cursor const & cur)
+{
+ /*
+ * We determine the directions based on the direction of the
+ * bottom() --- i.e., outermost --- paragraph, because that is
+ * the only way to achieve consistency of the arrow's movements
+ * within a paragraph, and thus avoid situations in which the
+ * cursor gets stuck.
+ */
+ return cur.bottom().paragraph().isRightToLeftPar(
+ cur.bv().buffer()->params());
+}
The fact that you need an extra header for a static function (which does
not use the class at all) is a good sign that it doesn't really
belong there.
If it were in Cursor, it'd look like:
bool Cursor::reverseDirections() const
{
/*
* We determine the directions based on the direction of the
* bottom() --- i.e., outermost --- paragraph, because that is
* the only way to achieve consistency of the arrow's movements
* within a paragraph, and thus avoid situations in which the
* cursor gets stuck.
*/
return bottom().paragraph().isRightToLeftPar(bv().buffer()->params());
}
The only reason not to do this is that Cursor is already too fat, but I
don't think it is outweighed in this case.
Could be a Paragraph method, too...
Andre'
I hear you. But what about the fact that logically it belongs in Bidi?
How do we take that into account?