]> git.lyx.org Git - features.git/commitdiff
activeat 'out of sync' message
authorAndré Pönitz <poenitz@gmx.net>
Thu, 6 Nov 2003 10:30:43 +0000 (10:30 +0000)
committerAndré Pönitz <poenitz@gmx.net>
Thu, 6 Nov 2003 10:30:43 +0000 (10:30 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8053 a592a061-630c-0410-9148-cb99ea01b6c8

src/ParagraphParameters.C
src/cursor.C
src/cursor.h
src/lyxfunc.C

index a087ed44f4c827de894c9f51a447e9129a0b7a95..bd329198acf6531a6bbf44a30f4ab7b86743efc1 100644 (file)
@@ -29,7 +29,6 @@
 #include "frontends/LyXView.h"
 
 #include "support/lstrings.h"
-
 #include "support/std_sstream.h"
 
 using lyx::support::rtrim;
index d823670c4cc722e7705175b3deb73e7d1ecf3e73..3c472d3a06e2f197c581c851ce414772859668e0 100644 (file)
@@ -50,51 +50,12 @@ std::ostream & operator<<(std::ostream & os, LCursor const & cursor)
 DispatchResult LCursor::dispatch(FuncRequest const & cmd)
 {
        for (int i = data_.size() - 1; i >= 0; --i) {
-               CursorItem & citem = data_[i];
-
+               CursorItem const & citem = data_[i];
                lyxerr << "trying to dispatch to inset" << citem.inset_ << endl;
                DispatchResult res = citem.inset_->dispatch(cmd);
-               lyxerr << "   result: " << res.val() << endl;
-
-               switch (res.val()) {
-                       case FINISHED:
-                               pop();
-                               return DispatchResult(true, true);
-
-                       case FINISHED_RIGHT: {
-                               pop();
-                               //InsetText * inset = static_cast<InsetText *>(innerInset());
-                               //if (inset)
-                               //      inset->moveRightIntern(bv_, false, false);
-                               //else
-                               //      bv_->text->cursorRight(bv_);
-                               innerText()->cursorRight(bv_);
-                               return DispatchResult(true);
-                       }
-
-                       case FINISHED_UP: {
-                               pop();
-                               //InsetText * inset = static_cast<InsetText *>(inset());
-                               //if (inset)
-                               //      result = inset->moveUp(bv);
-                               return DispatchResult(true);
-                       }
-
-                       case FINISHED_DOWN: {
-                               pop();
-                               //InsetText * inset = static_cast<InsetText *>(inset());
-                               //if (inset)
-                               //      result = inset->moveDown(bv);
-                               return DispatchResult(true);
-                       }
-
-                       default:
-                               break;
-               }
-
-               lyxerr << "# unhandled result: " << res.val() << endl;
+               if (handleResult(res))
+                       return DispatchResult(true, true);
        }
-
        lyxerr << "trying to dispatch to main text " << bv_->text << endl;
        DispatchResult res = bv_->text->dispatch(cmd);
        lyxerr << "   result: " << res.val() << endl;
@@ -102,6 +63,50 @@ DispatchResult LCursor::dispatch(FuncRequest const & cmd)
 }
 
 
+bool LCursor::handleResult(DispatchResult const & res)
+{
+       lyxerr << "LCursor::handleResult: " << res.val() << endl;
+       switch (res.val()) {
+               case FINISHED:
+                       pop();
+                       return true;
+
+               case FINISHED_RIGHT: {
+                       pop();
+                       //InsetText * inset = static_cast<InsetText *>(innerInset());
+                       //if (inset)
+                       //      inset->moveRightIntern(bv_, false, false);
+                       //else
+                       //      bv_->text->cursorRight(bv_);
+                       innerText()->cursorRight(bv_);
+                       return true;
+               }
+
+               case FINISHED_UP: {
+                       pop();
+                       //InsetText * inset = static_cast<InsetText *>(inset());
+                       //if (inset)
+                       //      result = inset->moveUp(bv);
+                       return true;
+               }
+
+               case FINISHED_DOWN: {
+                       pop();
+                       //InsetText * inset = static_cast<InsetText *>(inset());
+                       //if (inset)
+                       //      result = inset->moveDown(bv);
+                       return true;
+               }
+
+               default:
+                       break;
+                       lyxerr << "# unhandled result: " << res.val() << endl;
+                       return false;
+       }
+}
+
+
+
 LCursor::LCursor(BufferView * bv)
        : bv_(bv)
 {}
index d34954d89491b8ee29f8fe15c865dd546128cedb..2494217206f1350f4cc5df9060798cf9bcfc8259 100644 (file)
@@ -57,8 +57,10 @@ class LCursor {
 public:
        ///
        LCursor(BufferView * bv);
-       ///
+       /// dispatch from innermost inset upwards
        DispatchResult dispatch(FuncRequest const & cmd);
+       /// adjust cursor acording to result
+       bool handleResult(DispatchResult const & res);
        ///
        void push(InsetOld *, LyXText *);
        ///
index 1cf0de8c676e918f268d41ae7ace3541cfdfaf3e..4e20c5fc58fa1dd3114c1f1e3457aefaf030cfd5 100644 (file)
@@ -882,6 +882,12 @@ void LyXFunc::dispatch(FuncRequest const & func, bool verbose)
                view()->hideCursor();
 
 #if 1
+       if (view()->cursor().innerInset() != view()->theLockingInset()) {
+               lyxerr << "### CURSOR OUT OF SYNC: tli: "
+                       << view()->theLockingInset()
+                       << "\ncursor: " << view()->cursor() << endl; 
+       }
+
        if (0) {
                DispatchResult result =
                        view()->cursor().dispatch(FuncRequest(func, view()));