]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfunc.C
Fix working of the spellchecker dialog with ispell when there are no
[lyx.git] / src / lyxfunc.C
index 2bfadf470c924862d127f111dbc4234e9980e0ae..d1df3e1b24dc86d4e49ae36ad81360105c85fff4 100644 (file)
@@ -241,7 +241,7 @@ void LyXFunc::processKeySym(KeySym keysym, unsigned int state)
                return;
        }
 
-       // Can we be sure that this will work for all X-Windows
+       // Can we be sure that this will work for all X Window
        // implementations? (Lgb)
        // This code snippet makes lyx ignore some keys. Perhaps
        // all of them should be explictly mentioned?
@@ -866,12 +866,40 @@ string const LyXFunc::dispatch(int ac,
                                        inset->edit(owner->view(),slx,sly,0); 
                                return string();
                        } else if (((result=owner->view()->theLockingInset()->
-                                  localDispatch(owner->view(), action,
-                                                argument)) ==
-                                  UpdatableInset::DISPATCHED) ||
-                                  (result == UpdatableInset::DISPATCHED_NOUPDATE))
+                                    localDispatch(owner->view(), action, argument)) ==
+                                   UpdatableInset::DISPATCHED) ||
+                                  (result == UpdatableInset::DISPATCHED_NOUPDATE))
                                return string();
-                       else {
+                       else if (result == UpdatableInset::FINISHED) {
+                                       if (TEXT()->cursor.par()->isRightToLeftPar(owner->buffer()->params)) {
+                                               TEXT()->cursorRight(owner->view());
+                                               moveCursorUpdate(true, false);
+                                               owner->showState();
+                                       }
+                                       return string();
+                       } else if (result == UpdatableInset::FINISHED_RIGHT) {
+                               if (!TEXT()->cursor.par()->isRightToLeftPar(owner->buffer()->params)) {
+                                       TEXT()->cursorRight(owner->view());
+                                       moveCursorUpdate(true, false);
+                                       owner->showState();
+                               }
+                               return string();
+                       } else if (result == UpdatableInset::FINISHED_UP) {
+                               if (TEXT()->cursor.row()->previous()) {
+                                       TEXT()->cursorUp(owner->view());
+                                       moveCursorUpdate(true, false);
+                                       owner->showState();
+                               }
+                               return string();
+                       } else if (result == UpdatableInset::FINISHED_DOWN) {
+                               if (TEXT()->cursor.row()->next())
+                                       TEXT()->cursorDown(owner->view());
+                               else
+                                       TEXT()->cursorRight(owner->view());
+                               moveCursorUpdate(true, false);
+                               owner->showState();
+                               return string();
+                       } else {
                                //setMessage(N_("Text mode"));
                                switch (action) {
                                case LFUN_UNKNOWN_ACTION:
@@ -910,8 +938,6 @@ string const LyXFunc::dispatch(int ac,
                }
        }
 
-       lyx::Assert(action != LFUN_SELECT_FILE_SYNC);
-
        switch (action) {
                
        case LFUN_ESCAPE:
@@ -1169,17 +1195,13 @@ string const LyXFunc::dispatch(int ac,
                break;
 #else
 #ifdef WITH_WARNINGS
-#warning Find another implementation here (or another lyxfunc)!
+//#warning Find another implementation here (or another lyxfunc)!
 #endif
 #endif
        case LFUN_HELP_ABOUTLYX:
                owner->getDialogs()->showAboutlyx();
                break;
 
-       case LFUN_HELP_COPYRIGHT:
-       case LFUN_HELP_CREDITS:
-               
-
         case LFUN_HELP_OPEN:
        {
                string const arg = argument;
@@ -1204,8 +1226,6 @@ string const LyXFunc::dispatch(int ac,
                break;
         }
 
-       case LFUN_HELP_VERSION:
-       
                // --- version control -------------------------------
        case LFUN_VC_REGISTER:
        {
@@ -1393,10 +1413,13 @@ string const LyXFunc::dispatch(int ac,
                        lyxerr[Debug::INFO] << "No matching paragraph found! ["
                                            << id << "]" << std::endl;
                        break;
+               } else {
+                       lyxerr << "Paragraph " << par->id()
+                              << " found." << endl;
                }
 
                // Set the cursor
-               TEXT()->setCursor(owner->view(), par, 0);
+               owner->view()->text->setCursor(owner->view(), par, 0);
                owner->view()->setState();
                owner->showState();
 
@@ -1861,7 +1884,7 @@ void LyXFunc::open(string const & fname)
                owner->message(str.str().c_str());
        } else {
                ostringstream str;
-               str << _("Could not open docuent") << ' ' << disp_fn;
+               str << _("Could not open document") << ' ' << disp_fn;
                owner->message(str.str().c_str());
        }
 }
@@ -2025,7 +2048,7 @@ void LyXFunc::initMiniBuffer()
                text += nicename;
                if (tmpbuf->lyxvc.inUse()) {
                        text += " [";
-                       text += tmpbuf->lyxvc.version();
+                       text += tmpbuf->lyxvc.versionString();
                        text += ' ';
                        text += tmpbuf->lyxvc.locker();
                        if (tmpbuf->isReadonly())