]> git.lyx.org Git - lyx.git/commitdiff
fix bug 2101: Any character followed by Right Arrow moves the cursor to the next...
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 21 Oct 2005 08:16:12 +0000 (08:16 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 21 Oct 2005 08:16:12 +0000 (08:16 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10563 a592a061-630c-0410-9148-cb99ea01b6c8

src/insets/ChangeLog
src/insets/insettabular.C

index 2ce3d45295f196c71d68a2c0a7411492f8debe42..538441aacea96af9e594a1e65a0a392b0bc2a482 100644 (file)
@@ -1,3 +1,8 @@
+2005-10-20  Jean-Marc Lasgouttes  <lasgouttes@lyx.org>
+
+       * insettabular.C (doDispatch): do not override the result of
+       LFUN_RIGHT/LEFT. (bug 2101)
+
 2005-09-16  Michael Gerz  <michael.gerz@teststep.org>
 
        * insetvspace.C (metrics): compute ascent and descent in a way that
index 891f4eea0a280c0e0840d3979ce185352c204889..ee709f4c5613b6819f61d69e2f55d6c618f32c9f 100644 (file)
@@ -511,24 +511,24 @@ void InsetTabular::doDispatch(LCursor & cur, FuncRequest & cmd)
        case LFUN_RIGHTSEL:
        case LFUN_RIGHT:
                cell(cur.idx())->dispatch(cur, cmd);
-               cur.dispatched(); // override the cell's decision
-               if (sl == cur.top())
+               if (!cur.result().dispatched()) {
                        isRightToLeft(cur) ? movePrevCell(cur) : moveNextCell(cur);
-               if (sl == cur.top()) {
-                       cmd = FuncRequest(LFUN_FINISHED_RIGHT);
-                       cur.undispatched();
+                       if (sl == cur.top()) 
+                               cmd = FuncRequest(LFUN_FINISHED_RIGHT);
+                       else
+                               cur.dispatched();
                }
                break;
 
        case LFUN_LEFTSEL:
        case LFUN_LEFT:
                cell(cur.idx())->dispatch(cur, cmd);
-               cur.dispatched(); // override the cell's decision
-               if (sl == cur.top())
+               if (!cur.result().dispatched()) {
                        isRightToLeft(cur) ? moveNextCell(cur) : movePrevCell(cur);
-               if (sl == cur.top()) {
-                       cmd = FuncRequest(LFUN_FINISHED_LEFT);
-                       cur.undispatched();
+                       if (sl == cur.top()) 
+                               cmd = FuncRequest(LFUN_FINISHED_LEFT);
+                       else
+                               cur.dispatched();
                }
                break;