]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfunc.C
Fix bug 2195: Slowness in rendering inside insets, especially on the Mac
[lyx.git] / src / lyxfunc.C
index 936d4916a33c47bcf7523b3862f09a7f328bbc68..7a7882d85f4688cfea484db224cccb1dfbddb5fe 100644 (file)
@@ -307,7 +307,8 @@ void LyXFunc::processKeySym(LyXKeySymPtr keysym, key_modifier::state state)
                // by a binding
                if (keysym->isText() && keyseq.length() == 1) {
                        lyxerr[Debug::KEY] << "isText() is true, inserting." << endl;
-                       func = FuncRequest(LFUN_SELFINSERT);
+                       func = FuncRequest(LFUN_SELFINSERT, 
+                                          FuncRequest::KEYBOARD);
                } else {
                        lyxerr[Debug::KEY] << "Unknown, !isText() - giving up" << endl;
                        owner->message(_("Unknown function."));
@@ -318,7 +319,8 @@ void LyXFunc::processKeySym(LyXKeySymPtr keysym, key_modifier::state state)
        if (func.action == LFUN_SELFINSERT) {
                if (encoded_last_key != 0) {
                        string const arg(1, encoded_last_key);
-                       dispatch(FuncRequest(LFUN_SELFINSERT, arg));
+                       dispatch(FuncRequest(LFUN_SELFINSERT, arg, 
+                                            FuncRequest::KEYBOARD));
                        lyxerr[Debug::KEY]
                                << "SelfInsert arg[`" << arg << "']" << endl;
                }
@@ -411,10 +413,6 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
                enable = cmd.argument == "custom"
                        || Exporter::IsExportable(*buf, cmd.argument);
                break;
-       case LFUN_CUT:
-       case LFUN_COPY:
-               enable = cur.selection();
-               break;
 
        case LFUN_RUNCHKTEX:
                enable = buf->isLatex() && lyxrc.chktex_command != "none";
@@ -430,7 +428,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
 
        case LFUN_LAYOUT:
        case LFUN_LAYOUT_PARAGRAPH:
-               enable = !cur.inset().forceDefaultParagraphs(&cur.inset());
+               enable = !cur.inset().forceDefaultParagraphs(cur.idx());
                break;
 
        case LFUN_VC_REGISTER:
@@ -1596,10 +1594,9 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                                view()->update(Update::FitCursor);
 
                        // if we executed a mutating lfun, mark the buffer as dirty
-                       // FIXME: Why not use flag.enabled() but call getStatus again?
-                       if (getStatus(cmd).enabled()
-                                       && !lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)
-                                       && !lyxaction.funcHasFlag(cmd.action, LyXAction::ReadOnly))
+                       if (flag.enabled()
+                           && !lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)
+                           && !lyxaction.funcHasFlag(cmd.action, LyXAction::ReadOnly))
                                view()->buffer()->markDirty();
                }