]> git.lyx.org Git - lyx.git/blobdiff - src/Text3.cpp
Account for old versions of Pygments
[lyx.git] / src / Text3.cpp
index 3e6fdf0e14e62634173830b242372aa160a48a51..71293f80301152055633644007ce08bab5740db3 100644 (file)
@@ -586,7 +586,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                if (cur.selection())
                        cutSelection(cur, true, false);
                else
-                       deleteWordForward(cur);
+                       deleteWordForward(cur, cmd.getArg(0) == "force");
                finishChange(cur, false);
                break;
 
@@ -594,7 +594,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                if (cur.selection())
                        cutSelection(cur, true, false);
                else
-                       deleteWordBackward(cur);
+                       deleteWordBackward(cur, cmd.getArg(0) == "force");
                finishChange(cur, false);
                break;
 
@@ -1054,6 +1054,13 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        if (cur.pos() == cur.paragraph().size())
                                // Par boundary, force full-screen update
                                singleParUpdate = false;
+                       else if (cmd.getArg(0) != "force" && cur.confirmDeletion()) {
+                               cur.resetAnchor();
+                               cur.selection(true);
+                               cur.posForward();
+                               cur.setSelection();
+                               break;
+                       }
                        needsUpdate |= erase(cur);
                        cur.resetAnchor();
                } else {
@@ -1071,6 +1078,13 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                                // Par boundary, full-screen update
                                if (par_boundary)
                                        singleParUpdate = false;
+                               else if (cmd.getArg(0) != "force" && cur.confirmDeletion(true)) {
+                                       cur.resetAnchor();
+                                       cur.selection(true);
+                                       cur.posBackward();
+                                       cur.setSelection();
+                                       break;
+                               }
                                needsUpdate |= backspace(cur);
                                cur.resetAnchor();
                                if (par_boundary && !first_par && cur.pos() > 0
@@ -1229,6 +1243,8 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                string const name = to_utf8(cmd.argument());
                if (name == "hyphenation")
                        specialChar(cur, InsetSpecialChar::HYPHENATION);
+               else if (name == "allowbreak")
+                       specialChar(cur, InsetSpecialChar::ALLOWBREAK);
                else if (name == "ligature-break")
                        specialChar(cur, InsetSpecialChar::LIGATURE_BREAK);
                else if (name == "slash")
@@ -2152,6 +2168,13 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                break;
        }
 
+       case LFUN_FONT_CROSSOUT: {
+               Font font(ignore_font, ignore_language);
+               font.fontInfo().setXout(FONT_TOGGLE);
+               toggleAndShow(cur, this, font);
+               break;
+       }
+
        case LFUN_FONT_UNDERUNDERLINE: {
                Font font(ignore_font, ignore_language);
                font.fontInfo().setUuline(FONT_TOGGLE);
@@ -2818,19 +2841,13 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
                        for (; pit <= lastpit; ++pit) {
                                if (pars_[pit].layout() != lay)
                                        break;
-                               InsetList::const_iterator it = pars_[pit].insetList().begin();
-                               InsetList::const_iterator end = pars_[pit].insetList().end();
-                               for (; it != end; ++it) {
-                                       if (it->inset->lyxCode() == ARG_CODE) {
-                                               InsetArgument const * ins =
-                                                       static_cast<InsetArgument const *>(it->inset);
+                               for (auto const & table : pars_[pit].insetList())
+                                       if (InsetArgument const * ins = table.inset->asInsetArgument())
                                                if (ins->name() == arg) {
                                                        // we have this already
                                                        enable = false;
                                                        break;
                                                }
-                                       }
-                               }
                        }
                } else
                        enable = false;
@@ -3189,6 +3206,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_FONT_STATE:
        case LFUN_FONT_UNDERLINE:
        case LFUN_FONT_STRIKEOUT:
+       case LFUN_FONT_CROSSOUT:
        case LFUN_FONT_UNDERUNDERLINE:
        case LFUN_FONT_UNDERWAVE:
        case LFUN_TEXTSTYLE_APPLY: