]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfunc.C
redraw fix 1.
[lyx.git] / src / lyxfunc.C
index fe5c9056a3b255b46d100f083bceedfd217a5cbb..d1d920895f6c30ff25165657037550bbfdb3a041 100644 (file)
@@ -34,7 +34,7 @@
 #include "trans_mgr.h"
 #include "layout.h"
 #include "bufferview_funcs.h"
-#include "minibuffer.h"
+#include "frontends/MiniBuffer.h"
 #include "vspace.h"
 #include "frontends/LyXView.h"
 #include "FloatList.h"
@@ -471,7 +471,7 @@ FuncStatus LyXFunc::getStatus(kb_action action,
                break;
        }
        case LFUN_MATH_VALIGN:
-               if (mathcursor && mathcursor->formula()->getType() != LM_OT_SIMPLE) {
+               if (mathcursor && mathcursor->formula()->hullType() != "simple") {
                        char align = mathcursor->valign();
                        if (align == '\0') {
                                disable = true;
@@ -491,7 +491,7 @@ FuncStatus LyXFunc::getStatus(kb_action action,
                break;
 
        case LFUN_MATH_HALIGN:
-               if (mathcursor && mathcursor->formula()->getType() != LM_OT_SIMPLE) {
+               if (mathcursor && mathcursor->formula()->hullType() != "simple") {
                        char align = mathcursor->halign();
                        if (align == '\0') {
                                disable = true;
@@ -511,22 +511,9 @@ FuncStatus LyXFunc::getStatus(kb_action action,
                break;
 
        case LFUN_MATH_MUTATE:
-               if (tli && (tli->lyxCode() == Inset::MATH_CODE)) {
-                       MathInsetTypes type = mathcursor->formula()->getType();
-                       if (argument == "inline") {
-                               flag.setOnOff(type == LM_OT_SIMPLE);
-                       } else if (argument == "display") {
-                               flag.setOnOff(type == LM_OT_EQUATION);
-                       } else if (argument == "eqnarray") {
-                               flag.setOnOff(type == LM_OT_EQNARRAY);
-                       } else if (argument == "align") {
-                               flag.setOnOff(type == LM_OT_ALIGN);
-                       } else if (argument == "none") {
-                               flag.setOnOff(type == LM_OT_NONE);
-                       } else {
-                               disable = true;
-                       }
-               } else
+               if (tli && (tli->lyxCode() == Inset::MATH_CODE))
+                       flag.setOnOff(mathcursor->formula()->hullType() == argument);
+               else
                        disable = true;
                break;
 
@@ -546,7 +533,7 @@ FuncStatus LyXFunc::getStatus(kb_action action,
        case LFUN_MATH_COLUMN_INSERT:
        case LFUN_MATH_COLUMN_DELETE:
                disable = !mathcursor || !mathcursor->halign() ||
-                       mathcursor->formula()->getType() == LM_OT_SIMPLE;
+                       mathcursor->formula()->hullType() == "simple";
                break;
 
        default:
@@ -785,42 +772,40 @@ void LyXFunc::verboseDispatch(kb_action action,
 
        commandshortcut.erase();
 
-       if (lyxrc.display_shortcuts && show_sc) {
-               if (action != LFUN_SELFINSERT) {
-                       // Put name of command and list of shortcuts
-                       // for it in minibuffer
-                       string comname = lyxaction.getActionName(action);
+       if (show_sc && action != LFUN_SELFINSERT) {
+               // Put name of command and list of shortcuts
+               // for it in minibuffer
+               string comname = lyxaction.getActionName(action);
 
-                       int pseudoaction = action;
-                       bool argsadded = false;
+               int pseudoaction = action;
+               bool argsadded = false;
 
-                       if (!argument.empty()) {
-                               // the pseudoaction is useful for the bindings
-                               pseudoaction =
-                                       lyxaction.searchActionArg(action,
-                                                                 argument);
+               if (!argument.empty()) {
+                       // the pseudoaction is useful for the bindings
+                       pseudoaction =
+                               lyxaction.searchActionArg(action,
+                                                         argument);
 
-                               if (pseudoaction == LFUN_UNKNOWN_ACTION) {
-                                       pseudoaction = action;
-                               } else {
-                                       comname += " " + argument;
-                                       argsadded = true;
-                               }
+                       if (pseudoaction == LFUN_UNKNOWN_ACTION) {
+                               pseudoaction = action;
+                       } else {
+                               comname += " " + argument;
+                               argsadded = true;
                        }
+               }
 
-                       string const shortcuts =
-                               toplevel_keymap->findbinding(pseudoaction);
+               string const shortcuts =
+                       toplevel_keymap->findbinding(pseudoaction);
 
-                       if (!shortcuts.empty()) {
-                               comname += ": " + shortcuts;
-                       } else if (!argsadded && !argument.empty()) {
-                               comname += " " + argument;
-                       }
+               if (!shortcuts.empty()) {
+                       comname += ": " + shortcuts;
+               } else if (!argsadded && !argument.empty()) {
+                       comname += " " + argument;
+               }
 
-                       if (!comname.empty()) {
-                               comname = strip(comname);
-                               commandshortcut = "(" + comname + ')';
-                       }
+               if (!comname.empty()) {
+                       comname = strip(comname);
+                       commandshortcut = "(" + comname + ')';
                }
        }
 
@@ -1049,8 +1034,7 @@ string const LyXFunc::dispatch(kb_action action, string argument)
                transform(lyxaction.func_begin(), lyxaction.func_end(),
                          back_inserter(allCmds), lyx::firster());
                static vector<string> hist;
-               owner->getMiniBuffer()->getString(MiniBuffer::spaces,
-                                                 allCmds, hist);
+               owner->getMiniBuffer()->prepareForInput(allCmds, hist);
        }
        break;
 
@@ -1409,11 +1393,11 @@ string const LyXFunc::dispatch(kb_action action, string argument)
                        owner->view()->buffer(bufferlist.loadLyXFile(s));
                }
 
-               // Set the cursor
                owner->view()->setCursorFromRow(row);
 
-               // Recenter screen
                owner->view()->center();
+               // see BufferView_pimpl::center() 
+               owner->view()->updateScrollbar();
        }
        break;
 
@@ -1443,8 +1427,9 @@ string const LyXFunc::dispatch(kb_action action, string argument)
                owner->view()->setState();
                owner->showState();
 
-               // Recenter screen
                owner->view()->center();
+               // see BufferView_pimpl::center() 
+               owner->view()->updateScrollbar();
        }
        break;
 
@@ -1569,7 +1554,7 @@ string const LyXFunc::dispatch(kb_action action, string argument)
        case LFUN_SEQUENCE:
        {
                // argument contains ';'-terminated commands
-               while (argument.find(';') != string::npos) {
+               while (!argument.empty()) {
                        string first;
                        argument = split(argument, first, ';');
                        verboseDispatch(first, false);
@@ -1631,8 +1616,13 @@ string const LyXFunc::dispatch(kb_action action, string argument)
                lyxColorHandler->updateColor(lcolor.getFromLyXName(lyx_name));
 
                if (graphicsbg_changed) {
+#ifdef WITH_WARNINGS
+#warning FIXME!! The graphics cache no longer has a changeDisplay method.
+#endif
+#if 0
                        grfx::GCache & gc = grfx::GCache::get();
                        gc.changeDisplay(true);
+#endif
                }
 
                owner->view()->repaint();
@@ -1902,7 +1892,7 @@ void LyXFunc::doImport(string const & argument)
 
        lyxerr[Debug::INFO] << "LyXFunc::doImport: " << format
                            << " file: " << filename << endl;
+
        // need user interaction
        if (filename.empty()) {
                string initpath = lyxrc.document_path;
@@ -1970,7 +1960,7 @@ void LyXFunc::doImport(string const & argument)
                        }
        }
 
-       // if the file exists already, and we didn't do 
+       // if the file exists already, and we didn't do
        // -i lyx thefile.lyx, warn
        if (FileInfo(lyxfile, true).exist() && filename != lyxfile) {
                if (!Alert::askQuestion(_("A document by the name"),