]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView.cpp
Remove the unused default parameter of Buffer::doExport().
[lyx.git] / src / BufferView.cpp
index 19f78a19d799ed563c365d813c339d821d25ebd6..fff47d05597d682fd43ddcbe4707e7ff9b598099 100644 (file)
@@ -51,7 +51,6 @@
 #include "TextMetrics.h"
 #include "TexRow.h"
 #include "TocBackend.h"
-#include "VSpace.h"
 #include "WordLangTuple.h"
 
 #include "insets/InsetBibtex.h"
@@ -886,29 +885,28 @@ bool BufferView::scrollToCursor(DocIterator const & dit, bool recenter)
                if (recenter)
                        scrolled = scroll(ypos - height_/2);
 
+               // We try to visualize the whole row, if the row height is larger than
+               // the screen height, we scroll to a heuristic value of height_ / 4.
+               // FIXME: This heuristic value should be replaced by a recursive search
+               // for a row in the inset that can be visualized completely.
+               else if (row_dim.height() > height_) {
+                       if (ypos < defaultRowHeight())
+                               scrolled = scroll(ypos - height_ / 4);
+                       else if (ypos > height_ - defaultRowHeight())
+                               scrolled = scroll(ypos - 3 * height_ / 4);
+               }
+
                // If the top part of the row falls of the screen, we scroll
                // up to align the top of the row with the top of the screen.
                else if (ypos - row_dim.ascent() < 0 && ypos < height_) {
                        int ynew = row_dim.ascent();
-                       if (ynew > height_ - row_dim.descent())
-                               // FIXME: Recursively find the rowheight of the row in the inset
-                               // until we find a row which can be visualized completely.
-                               ynew = height_ - defaultRowHeight();
-                       int const scroll = ynew - ypos;
-                       scrolled = scrollUp(scroll);
+                       scrolled = scrollUp(ynew - ypos);
                }
 
                // If the bottom of the row falls of the screen, we scroll down.
-               // However, we have to be careful not to scroll that much that
-               // the top falls of the screen.
                else if (ypos + row_dim.descent() > height_ && ypos > 0) {
                        int ynew = height_ - row_dim.descent();
-                       if (ynew < row_dim.ascent())
-                               // FIXME: Recursively find the rowheight of the row in the inset
-                               // until we find a row which can be visualized completely.
-                               ynew = defaultRowHeight();
-                       int const scroll = ypos - ynew;
-                       scrolled = scrollDown(scroll);
+                       scrolled = scrollDown(ypos - ynew);
                }
 
                // else, nothing to do, the cursor is already visible so we just return.
@@ -1902,9 +1900,10 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
                Language const * newL = languages.getLanguage(argument);
                if (!newL || oldL == newL)
                        break;
-               if (oldL->rightToLeft() == newL->rightToLeft() && !buffer_.isMultiLingual()) {
+               if (oldL->rightToLeft() == newL->rightToLeft()) {
                        cur.recordUndoFullDocument();
                        buffer_.changeLanguage(oldL, newL);
+                       cur.setCurrentFont();
                        dr.forceBufferUpdate();
                }
                break;