]> git.lyx.org Git - lyx.git/blobdiff - src/Text3.cpp
de.po: update
[lyx.git] / src / Text3.cpp
index 71293f80301152055633644007ce08bab5740db3..305a1d28b21b1640a8d5e43c741fec00fed1a4c6 100644 (file)
@@ -53,7 +53,7 @@
 #include "frontends/Selection.h"
 
 #include "insets/InsetArgument.h"
-#include "insets/InsetCollapsable.h"
+#include "insets/InsetCollapsible.h"
 #include "insets/InsetCommand.h"
 #include "insets/InsetExternal.h"
 #include "insets/InsetFloat.h"
@@ -78,7 +78,7 @@
 #include "support/regex.h"
 
 #include "mathed/InsetMathHull.h"
-#include "mathed/MathMacroTemplate.h"
+#include "mathed/InsetMathMacroTemplate.h"
 
 #include <clocale>
 #include <sstream>
@@ -245,7 +245,7 @@ static bool doInsertInset(Cursor & cur, Text * text,
        if (!inset)
                return false;
 
-       if (InsetCollapsable * ci = inset->asInsetCollapsable())
+       if (InsetCollapsible * ci = inset->asInsetCollapsible())
                ci->setButtonLabel();
 
        cur.recordUndo();
@@ -452,7 +452,7 @@ static void outline(OutlineOp mode, Cursor & cur)
                                DocumentClass const & tc = buf.params().documentClass();
                                DocumentClass::const_iterator lit = tc.begin();
                                DocumentClass::const_iterator len = tc.end();
-                               int const newtoclevel = 
+                               int const newtoclevel =
                                        (mode == OutlineIn ? toclevel + 1 : toclevel - 1);
                                LabelType const oldlabeltype = start->layout().labeltype;
 
@@ -484,14 +484,14 @@ bool Text::isRTL(Paragraph const & par) const
        return par.isRTL(buffer.params());
 }
 
-       
+
 namespace {
-               
+
        Language const * getLanguage(Cursor const & cur, string const & lang) {
                return lang.empty() ? cur.getFont().language() : languages.getLanguage(lang);
        }
 
-}
+} // namespace
 
 
 void Text::dispatch(Cursor & cur, FuncRequest & cmd)
@@ -518,7 +518,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
        cur.noScreenUpdate();
 
        LBUFERR(this == cur.text());
-       
+
        // NOTE: This should NOT be a reference. See commit 94a5481a.
        CursorSlice const oldTopSlice = cur.top();
        bool const oldBoundary = cur.boundary();
@@ -770,6 +770,18 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        cur.upDownInText(up, needsUpdate);
                        needsUpdate |= cur.beforeDispatchCursor().inMathed();
                } else {
+                       pos_type newpos = up ? 0 : cur.lastpos();
+                       if (lyxrc.mac_like_cursor_movement && cur.pos() != newpos) {
+                               needsUpdate |= cur.selHandle(select);
+                               // we do not reset the targetx of the cursor
+                               cur.pos() = newpos;
+                               needsUpdate |= bv->checkDepm(cur, bv->cursor());
+                               cur.updateTextTargetOffset();
+                               if (needsUpdate)
+                                       cur.forceBufferUpdate();
+                               break;
+                       }
+
                        // if the cursor cannot be moved up or down do not remove
                        // the selection right now, but wait for the next dispatch.
                        if (select)
@@ -835,6 +847,8 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                                break;
                }
                cur.pos() = cur.lastpos();
+               cur.boundary(false);
+               cur.setCurrentFont();
 
                needsUpdate |= cur != old_cur;
                break;
@@ -1227,6 +1241,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                }
 
                ins->setParams(inspar);
+               break;
        }
 
        case LFUN_SPACE_INSERT:
@@ -1712,6 +1727,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                // reset the anchor.
                bvcur.setCursor(cur);
                bvcur.selection(true);
+               bvcur.setCurrentFont();
                if (cur.top() == old) {
                        // We didn't move one iota, so no need to update the screen.
                        cur.screenUpdateFlags(Update::SinglePar | Update::FitCursor);
@@ -2044,7 +2060,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        // don't pass "on" as argument
                        // (it would appear literally in the first cell)
                        docstring sel = cur.selectionAsString(false);
-                       MathMacroTemplate * macro = new MathMacroTemplate(cur.buffer());
+                       InsetMathMacroTemplate * macro = new InsetMathMacroTemplate(cur.buffer());
                        // create a macro template if we see "\\newcommand" somewhere, and
                        // an ordinary formula otherwise
                        if (!sel.empty()
@@ -2080,7 +2096,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        MacroType type = MacroTypeNewcommand;
                        if (s2 == "def")
                                type = MacroTypeDef;
-                       MathMacroTemplate * inset = new MathMacroTemplate(cur.buffer(),
+                       InsetMathMacroTemplate * inset = new InsetMathMacroTemplate(cur.buffer(),
                                from_utf8(token(s, ' ', 0)), nargs, false, type);
                        inset->setBuffer(bv->buffer());
                        insertInset(cur, inset);