]> git.lyx.org Git - lyx.git/blobdiff - src/Text3.cpp
BufferParams.cpp: change the package loading to:
[lyx.git] / src / Text3.cpp
index d7dec77f53d16ee54265a5d378a6337c9c82ee21..408405d7605b364cdbeb22929b450c90aaa225dd 100644 (file)
@@ -17,6 +17,7 @@
 
 #include "Text.h"
 
+#include "Bidi.h"
 #include "BranchList.h"
 #include "FloatList.h"
 #include "FuncStatus.h"
@@ -440,9 +441,8 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                needsUpdate |= cursorDownParagraph(cur);
                break;
 
-       case LFUN_SCREEN_UP:
        case LFUN_SCREEN_UP_SELECT:
-               needsUpdate |= cur.selHandle(cmd.action == LFUN_SCREEN_UP_SELECT);
+               needsUpdate |= cur.selHandle(true);
                if (cur.pit() == 0 && cur.textRow().pos() == 0)
                        cur.undispatched();
                else {
@@ -450,9 +450,8 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                }
                break;
 
-       case LFUN_SCREEN_DOWN:
        case LFUN_SCREEN_DOWN_SELECT:
-               needsUpdate |= cur.selHandle(cmd.action == LFUN_SCREEN_DOWN_SELECT);
+               needsUpdate |= cur.selHandle(true);
                if (cur.pit() == cur.lastpit()
                          && cur.textRow().endpos() == cur.lastpos())
                        cur.undispatched();
@@ -574,13 +573,13 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
 
        case LFUN_BREAK_PARAGRAPH:
                cap::replaceSelection(cur);
-               breakParagraph(cur, 0);
+               breakParagraph(cur, false);
                cur.resetAnchor();
                break;
 
        case LFUN_BREAK_PARAGRAPH_KEEP_LAYOUT:
                cap::replaceSelection(cur);
-               breakParagraph(cur, 1);
+               breakParagraph(cur, true);
                cur.resetAnchor();
                break;
 
@@ -591,7 +590,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                if (cur.pos() == 0)
                        cur.paragraph().params().labelWidthString(docstring());
                else
-                       breakParagraph(cur, 0);
+                       breakParagraph(cur, false);
                cur.resetAnchor();
                break;
        }
@@ -1126,7 +1125,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                updateLabels(bv->buffer());
                break;
        case LFUN_NOTE_INSERT:
-       case LFUN_CHARSTYLE_INSERT:
+       case LFUN_FLEX_INSERT:
        case LFUN_BOX_INSERT:
        case LFUN_BRANCH_INSERT:
        case LFUN_BIBITEM_INSERT:
@@ -1202,12 +1201,10 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                recordUndo(cur);
                cur.clearSelection();
                insertInset(cur, inset);
-               inset->edit(cur, true);
                // Show the dialog for the nomenclature entry, since the
                // description entry still needs to be filled in.
                if (cmd.action == LFUN_NOMENCL_INSERT)
-                       InsetCommandMailer("nomenclature",
-                               *reinterpret_cast<InsetCommand *>(inset)).showDialog(&cur.bv());
+                       inset->edit(cur, true);
                cur.posRight();
                break;
        }
@@ -1306,7 +1303,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                break;
        }
 
-       case LFUN_FONT_CODE: {
+       case LFUN_FONT_TYPEWRITER: {
                Font font(Font::ALL_IGNORE);
                font.setFamily(Font::TYPEWRITER_FAMILY); // no good
                toggleAndShow(cur, this, font);
@@ -1378,14 +1375,18 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
 
        case LFUN_FINISHED_LEFT:
                LYXERR(Debug::DEBUG) << "handle LFUN_FINISHED_LEFT:\n" << cur << endl;
-               if (reverseDirectionNeeded(cur))
+               if (reverseDirectionNeeded(cur)) {
                        ++cur.pos();
+                       cur.setCurrentFont();
+               }
                break;
 
        case LFUN_FINISHED_RIGHT:
                LYXERR(Debug::DEBUG) << "handle LFUN_FINISHED_RIGHT:\n" << cur << endl;
-               if (!reverseDirectionNeeded(cur))
+               if (!reverseDirectionNeeded(cur)) {
                        ++cur.pos();
+                       cur.setCurrentFont();
+               }
                break;
 
        case LFUN_LAYOUT_PARAGRAPH: {
@@ -1680,11 +1681,16 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_NOTE_INSERT:
                code = Inset::NOTE_CODE;
                break;
-       case LFUN_CHARSTYLE_INSERT:
-               code = Inset::CHARSTYLE_CODE;
-               if (cur.buffer().params().getTextClass().insetlayouts().empty())
+       case LFUN_FLEX_INSERT: {
+               code = Inset::FLEX_CODE;
+               string s = cmd.getArg(0);
+               InsetLayout il =  cur.buffer().params().getTextClass().insetlayout(from_utf8(s));
+               if (il.lyxtype != "charstyle" &&
+                   il.lyxtype != "custom" &&
+                   il.lyxtype != "element")
                        enable = false;
                break;
+               }
        case LFUN_BOX_INSERT:
                code = Inset::BOX_CODE;
                break;
@@ -1769,7 +1775,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
                flag.setOnOff(font.family() == Font::ROMAN_FAMILY);
                return true;
 
-       case LFUN_FONT_CODE:
+       case LFUN_FONT_TYPEWRITER:
                flag.setOnOff(font.family() == Font::TYPEWRITER_FAMILY);
                return true;
 
@@ -1850,8 +1856,6 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_WORD_SELECT:
        case LFUN_PARAGRAPH_UP:
        case LFUN_PARAGRAPH_DOWN:
-       case LFUN_SCREEN_UP:
-       case LFUN_SCREEN_DOWN:
        case LFUN_LINE_BEGIN:
        case LFUN_LINE_END:
        case LFUN_BREAK_LINE: