]> git.lyx.org Git - features.git/commitdiff
Getting rid of LTR bias --- part 2/?
authorDov Feldstern <dov@lyx.org>
Sun, 28 Oct 2007 20:35:57 +0000 (20:35 +0000)
committerDov Feldstern <dov@lyx.org>
Sun, 28 Oct 2007 20:35:57 +0000 (20:35 +0000)
This is a continuation of r21128. This round fixes the "Word" movement
functions and LFUNS.

Behavior should remain unchanged by this fix.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21244 a592a061-630c-0410-9148-cb99ea01b6c8

12 files changed:
lib/bind/cua.bind
lib/bind/emacs.bind
lib/bind/mac.bind
lib/bind/sciword.bind
lib/bind/xemacs.bind
src/LyXAction.cpp
src/Text.cpp
src/Text.h
src/Text3.cpp
src/lfuns.h
src/mathed/InsetMathGrid.cpp
src/mathed/InsetMathNest.cpp

index fb2dc4a87eb3fe5287a3099027a06ada8bbd505e..822a4ec8802071337074a25f6f50f38f754c2617 100644 (file)
 
 \bind "M-Up"                   "paragraph-move-up"
 \bind "M-Down"                 "paragraph-move-down"
-\bind "C-Right"                        "word-forward"
-\bind "C-Left"                 "word-backward"
+\bind "C-Right"                        "word-right"
+\bind "C-Left"                 "word-left"
 \bind "C-Up"                   "paragraph-up"
 \bind "C-Down"                 "paragraph-down"
 \bind "C-Home"                 "buffer-begin"
 \bind "S-Left"                 "char-left-select"
 \bind "S-Up"                   "up-select"
 \bind "S-Down"                 "down-select"
-\bind "S-C-Right"              "word-forward-select"
-\bind "S-C-Left"               "word-backward-select"
+\bind "S-C-Right"              "word-right-select"
+\bind "S-C-Left"               "word-left-select"
 \bind "S-C-Up"                 "paragraph-up-select"
 \bind "S-C-Down"               "paragraph-down-select"
 \bind "S-Home"                 "line-begin-select"
 \bind "S-KP_Left"               "char-left-select"
 \bind "S-KP_Up"                 "up-select"
 \bind "S-KP_Down"               "down-select"
-\bind "S-C-KP_Right"            "word-forward-select"
-\bind "S-C-KP_Left"             "word-backward-select"
+\bind "S-C-KP_Right"            "word-right-select"
+\bind "S-C-KP_Left"             "word-left-select"
 \bind "S-C-KP_Up"               "paragraph-up-select"
 \bind "S-C-KP_Down"             "paragraph-down-select"
 \bind "S-KP_Home"               "line-begin-select"
index 523f06dc91acfc7c1798e520eea160df9052f39c..2bc44b049584d4f95e280c2c6778beecab5c912c 100644 (file)
 
 \bind "M-Up"                   "paragraph-move-up"
 \bind "M-Down"                 "paragraph-move-down"
-\bind "C-Right"                        "word-forward"
-\bind "C-Left"                 "word-backward"
+\bind "C-Right"                        "word-right"
+\bind "C-Left"                 "word-left"
 \bind "C-Up"                   "paragraph-up"
 \bind "C-Down"                 "paragraph-down"
 \bind "Home"                   "buffer-begin"
 \bind "S-C-B"                  "char-backward-select"
 \bind "S-Up"                   "up-select"
 \bind "S-Down"                 "down-select"
-\bind "S-C-Right"              "word-forward-select"
-\bind "S-C-Left"               "word-backward-select"
+\bind "S-C-Right"              "word-right-select"
+\bind "S-C-Left"               "word-left-select"
 \bind "S-C-A"                  "line-begin-select"
 \bind "S-C-E"                  "line-end-select"
 \bind "S-C-Up"                 "paragraph-up-select"
 \bind "S-KP_Left"               "char-left-select"
 \bind "S-KP_Up"                 "up-select"
 \bind "S-KP_Down"               "down-select"
-\bind "S-C-KP_Right"            "word-forward-select"
-\bind "S-C-KP_Left"             "word-backward-select"
+\bind "S-C-KP_Right"            "word-right-select"
+\bind "S-C-KP_Left"             "word-left-select"
 \bind "S-C-KP_Up"               "paragraph-up-select"
 \bind "S-C-KP_Down"             "paragraph-down-select"
 \bind "S-KP_Home"               "line-begin-select"
index 32251f63fb6c87fb7294374580f13c03df8c3148..e38e34a821ef3875e45dc0e2fe8c6b24d5dd08ef 100644 (file)
@@ -91,8 +91,8 @@
 # Motion group
 #
 
-\bind "M-Right"                        "word-forward"
-\bind "M-Left"                 "word-backward"
+\bind "M-Right"                        "word-right"
+\bind "M-Left"                 "word-left"
 \bind "M-Up"                   "paragraph-up"
 \bind "M-Down"                 "paragraph-down"
 \bind "C-Up"                   "buffer-begin"
 \bind "S-Left"                 "char-left-select"
 \bind "S-Up"                   "up-select"
 \bind "S-Down"                 "down-select"
-\bind "S-M-Right"              "word-forward-select"
-\bind "S-M-Left"               "word-backward-select"
+\bind "S-M-Right"              "word-right-select"
+\bind "S-M-Left"               "word-left-select"
 \bind "S-M-Up"                 "paragraph-up-select"
 \bind "S-M-Down"               "paragraph-down-select"
 \bind "S-C-Left"                       "line-begin-select"
 \bind "S-KP_Left"               "char-left-select"
 \bind "S-KP_Up"                 "up-select"
 \bind "S-KP_Down"               "down-select"
-\bind "S-M-KP_Right"            "word-forward-select"
-\bind "S-M-KP_Left"             "word-backward-select"
+\bind "S-M-KP_Right"            "word-right-select"
+\bind "S-M-KP_Left"             "word-left-select"
 \bind "S-M-KP_Up"               "paragraph-up-select"
 \bind "S-M-KP_Down"             "paragraph-down-select"
 \bind "S-KP_Home"               "line-begin-select"
index c05af0229df9f7a5732eac4acead48fa7b287198..a26238d0306d3be1869b036a9f9dea41be6f9356 100644 (file)
 \bind "S-KP_Left"                              "char-left-select"
 \bind "S-KP_Up"                                "up-select"
 \bind "S-KP_Down"                              "down-select"
-\bind "S-C-KP_Right"                   "word-forward-select"
-\bind "S-C-KP_Left"                    "word-backward-select"
+\bind "S-C-KP_Right"                   "word-right-select"
+\bind "S-C-KP_Left"                    "word-left-select"
 \bind "S-C-KP_Up"                              "paragraph-up-select"
 \bind "S-C-KP_Down"                    "paragraph-down-select"
 \bind "S-KP_Home"                              "line-begin-select"
index 2a33daa3c451ae8e43a613a7f161cad8b5e4aeae..7498159049a51fc74449c44393619e49e8ee7a8f 100644 (file)
 
 \bind "M-Up"                   "paragraph-move-up"
 \bind "M-Down"                 "paragraph-move-down"
-\bind "C-Right"                "word-forward"
-\bind "C-Left"                 "word-backward"
+\bind "C-Right"                "word-right"
+\bind "C-Left"                 "word-left"
 \bind "C-Up"                   "paragraph-up"
 \bind "C-Down"                 "paragraph-down"
 \bind "M-bracketleft"          "paragraph-up"
 \bind "S-C-B"                  "char-backward-select"
 \bind "S-Up"                   "up-select"
 \bind "S-Down"                 "down-select"
-\bind "S-C-Right"              "word-forward-select"
-\bind "S-C-Left"               "word-backward-select"
+\bind "S-C-Right"              "word-right-select"
+\bind "S-C-Left"               "word-left-select"
 \bind "S-C-Up"                 "paragraph-up-select"
 \bind "S-C-Down"               "paragraph-down-select"
 \bind "S-Home"                 "line-begin-select"
 \bind "S-KP_Left"               "char-left-select"
 \bind "S-KP_Up"                 "up-select"
 \bind "S-KP_Down"               "down-select"
-\bind "S-C-KP_Right"            "word-forward-select"
-\bind "S-C-KP_Left"             "word-backward-select"
+\bind "S-C-KP_Right"            "word-right-select"
+\bind "S-C-KP_Left"             "word-left-select"
 \bind "S-C-KP_Up"               "paragraph-up-select"
 \bind "S-C-KP_Down"             "paragraph-down-select"
 \bind "S-KP_Home"               "line-begin-select"
index a13a62b35ef190b1e1d8a7ccd1e946babbf3b862..f3b6f797a5230022ad0ade7aaaf34f68cd06a3fc 100644 (file)
@@ -315,7 +315,11 @@ void LyXAction::init()
                { LFUN_WORD_FIND_FORWARD, "word-find-forward", ReadOnly, Edit },
                { LFUN_WORD_FORWARD, "word-forward", ReadOnly | NoUpdate, Edit },
                { LFUN_WORD_FORWARD_SELECT, "word-forward-select", ReadOnly | SingleParUpdate, Edit },
+               { LFUN_WORD_LEFT, "word-left", ReadOnly | NoUpdate, Edit },
+               { LFUN_WORD_LEFT_SELECT, "word-left-select", ReadOnly | SingleParUpdate, Edit },
                { LFUN_WORD_LOWCASE, "word-lowcase", Noop, Edit },
+               { LFUN_WORD_RIGHT, "word-right", ReadOnly | NoUpdate, Edit },
+               { LFUN_WORD_RIGHT_SELECT, "word-right-select", ReadOnly | SingleParUpdate, Edit },
                { LFUN_WORD_SELECT, "word-select", ReadOnly, Edit },
                { LFUN_WORD_UPCASE, "word-upcase", Noop, Edit },
                { LFUN_MESSAGE, "message", NoBuffer, System },
index 2339b2bef27667a1d4dc5148ac488b5153ec3a86..fe75838f49eeb66d7c5c7efa1e1b794b95754b03 100644 (file)
@@ -575,7 +575,7 @@ void Text::charInserted(Cursor & cur)
 // the cursor set functions have a special mechanism. When they
 // realize, that you left an empty paragraph, they will delete it.
 
-bool Text::cursorRightOneWord(Cursor & cur)
+bool Text::cursorForwardOneWord(Cursor & cur)
 {
        BOOST_ASSERT(this == cur.text());
 
@@ -596,7 +596,7 @@ bool Text::cursorRightOneWord(Cursor & cur)
 }
 
 
-bool Text::cursorLeftOneWord(Cursor & cur)
+bool Text::cursorBackwardOneWord(Cursor & cur)
 {
        BOOST_ASSERT(this == cur.text());
 
@@ -799,7 +799,7 @@ void Text::deleteWordForward(Cursor & cur)
        else {
                cur.resetAnchor();
                cur.selection() = true;
-               cursorRightOneWord(cur);
+               cursorForwardOneWord(cur);
                cur.setSelection();
                cutSelection(cur, true, false);
                checkBufferStructure(cur.buffer(), cur);
@@ -815,7 +815,7 @@ void Text::deleteWordBackward(Cursor & cur)
        else {
                cur.resetAnchor();
                cur.selection() = true;
-               cursorLeftOneWord(cur);
+               cursorBackwardOneWord(cur);
                cur.setSelection();
                cutSelection(cur, true, false);
                checkBufferStructure(cur.buffer(), cur);
@@ -836,7 +836,7 @@ void Text::changeCase(Cursor & cur, TextCase action)
        } else {
                from = cur.top();
                getWord(from, to, PARTIAL_WORD);
-               cursorRightOneWord(cur);
+               cursorForwardOneWord(cur);
        }
 
        cur.recordUndoSelection();
index 6f0af587b5734aaebf242f6ef9e45092d410f654..caf7b65d68fefc632a3b6ebd6136481f2f208625 100644 (file)
@@ -174,9 +174,9 @@ public:
         */
        bool cursorForward(Cursor & cur);
        ///
-       bool cursorLeftOneWord(Cursor & cur);
+       bool cursorBackwardOneWord(Cursor & cur);
        ///
-       bool cursorRightOneWord(Cursor & cur);
+       bool cursorForwardOneWord(Cursor & cur);
        /// Delete from cursor up to the end of the current or next word.
        void deleteWordForward(Cursor & cur);
        /// Delete from cursor to start of current or prior word.
index 12772211588254868b84544455d2e07fbfe4b1d3..eda0b204857925d93adc13e15474ceda50af9f83 100644 (file)
@@ -500,22 +500,44 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                needsUpdate |= tm.cursorEnd(cur);
                break;
 
+       case LFUN_WORD_RIGHT:
+       case LFUN_WORD_RIGHT_SELECT:
+               //FIXME: for visual cursor mode, really move right
+               if (reverseDirectionNeeded(cur)) {
+                       lyx::dispatch(FuncRequest(
+                               cmd.action == LFUN_WORD_RIGHT_SELECT ?
+                                       LFUN_WORD_BACKWARD_SELECT : LFUN_WORD_BACKWARD));
+               } else {
+                       lyx::dispatch(FuncRequest(
+                               cmd.action == LFUN_WORD_RIGHT_SELECT ?
+                                       LFUN_WORD_FORWARD_SELECT : LFUN_WORD_FORWARD));
+               }
+               break;
+
        case LFUN_WORD_FORWARD:
        case LFUN_WORD_FORWARD_SELECT:
                needsUpdate |= cur.selHandle(cmd.action == LFUN_WORD_FORWARD_SELECT);
-               if (reverseDirectionNeeded(cur))
-                       needsUpdate |= cursorLeftOneWord(cur);
-               else
-                       needsUpdate |= cursorRightOneWord(cur);
+               needsUpdate |= cursorForwardOneWord(cur);
+               break;
+
+       case LFUN_WORD_LEFT:
+       case LFUN_WORD_LEFT_SELECT:
+               //FIXME: for visual cursor mode, really move left
+               if (reverseDirectionNeeded(cur)) {
+                       lyx::dispatch(FuncRequest(
+                               cmd.action == LFUN_WORD_LEFT_SELECT ?
+                                       LFUN_WORD_FORWARD_SELECT : LFUN_WORD_FORWARD));
+               } else {
+                       lyx::dispatch(FuncRequest(
+                               cmd.action == LFUN_WORD_LEFT_SELECT ?
+                                       LFUN_WORD_BACKWARD_SELECT : LFUN_WORD_BACKWARD));
+               }
                break;
 
        case LFUN_WORD_BACKWARD:
        case LFUN_WORD_BACKWARD_SELECT:
                needsUpdate |= cur.selHandle(cmd.action == LFUN_WORD_BACKWARD_SELECT);
-               if (reverseDirectionNeeded(cur))
-                       needsUpdate |= cursorRightOneWord(cur);
-               else
-                       needsUpdate |= cursorLeftOneWord(cur);
+               needsUpdate |= cursorBackwardOneWord(cur);
                break;
 
        case LFUN_WORD_SELECT: {
@@ -1883,6 +1905,8 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_LINE_DELETE:
        case LFUN_WORD_FORWARD:
        case LFUN_WORD_BACKWARD:
+       case LFUN_WORD_RIGHT:
+       case LFUN_WORD_LEFT:
        case LFUN_CHAR_FORWARD:
        case LFUN_CHAR_FORWARD_SELECT:
        case LFUN_CHAR_BACKWARD:
@@ -1903,6 +1927,8 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_LINE_END_SELECT:
        case LFUN_WORD_FORWARD_SELECT:
        case LFUN_WORD_BACKWARD_SELECT:
+       case LFUN_WORD_RIGHT_SELECT:
+       case LFUN_WORD_LEFT_SELECT:
        case LFUN_WORD_SELECT:
        case LFUN_PARAGRAPH_UP:
        case LFUN_PARAGRAPH_DOWN:
index 63fb276163fecf373f1defd8ae1625ca35167e60..56e9b94f21ee79efe55bfa658616c22cf6e22e2b 100644 (file)
@@ -414,6 +414,11 @@ enum kb_action {
        LFUN_CHAR_RIGHT_SELECT,                  // dov, 20071022
        LFUN_FINISHED_BACKWARD,                  // dov, 20071022
        LFUN_FINISHED_FORWARD,                   // dov, 20071022
+       LFUN_WORD_LEFT,                                  // dov, 20071028
+       LFUN_WORD_LEFT_SELECT,                   // dov, 20071028
+       // 305
+       LFUN_WORD_RIGHT,                                 // dov, 20071028
+       LFUN_WORD_RIGHT_SELECT,                  // dov, 20071028
 
        LFUN_LASTACTION                  // end of the table
 };
index f95fdf40b60cb9d31fdb4f1da86e8d68c184ff78..0da03a9df0f5e5fce66d8ba9022ce34e0062fd01 100644 (file)
@@ -1306,7 +1306,10 @@ void InsetMathGrid::doDispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_LINE_BEGIN:
        case LFUN_WORD_BACKWARD_SELECT:
        case LFUN_WORD_BACKWARD:
+       case LFUN_WORD_LEFT_SELECT:
+       case LFUN_WORD_LEFT:
                cur.selHandle(cmd.action == LFUN_WORD_BACKWARD_SELECT ||
+                               cmd.action == LFUN_WORD_LEFT_SELECT ||
                                cmd.action == LFUN_LINE_BEGIN_SELECT);
                cur.macroModeClose();
                if (cur.pos() != 0) {
@@ -1325,9 +1328,12 @@ void InsetMathGrid::doDispatch(Cursor & cur, FuncRequest & cmd)
 
        case LFUN_WORD_FORWARD_SELECT:
        case LFUN_WORD_FORWARD:
+       case LFUN_WORD_RIGHT_SELECT:
+       case LFUN_WORD_RIGHT:
        case LFUN_LINE_END_SELECT:
        case LFUN_LINE_END:
                cur.selHandle(cmd.action == LFUN_WORD_FORWARD_SELECT ||
+                               cmd.action == LFUN_WORD_RIGHT_SELECT ||
                                cmd.action == LFUN_LINE_END_SELECT);
                cur.macroModeClose();
                cur.clearTargetX();
index 8d956096d90dc825a11cde8f570676df3a5c9bfd..a6f9e7165a197e3f1c2f734a056ef4be9f2c19c4 100644 (file)
@@ -620,10 +620,13 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
 
        case LFUN_LINE_BEGIN:
        case LFUN_WORD_BACKWARD:
+       case LFUN_WORD_LEFT:
                cur.updateFlags(Update::Decoration | Update::FitCursor);
        case LFUN_LINE_BEGIN_SELECT:
        case LFUN_WORD_BACKWARD_SELECT:
+       case LFUN_WORD_LEFT_SELECT:
                cur.selHandle(cmd.action == LFUN_WORD_BACKWARD_SELECT ||
+                               cmd.action == LFUN_WORD_LEFT_SELECT || 
                                cmd.action == LFUN_LINE_BEGIN_SELECT);
                cur.macroModeClose();
                if (cur.pos() != 0) {
@@ -641,11 +644,14 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
                break;
 
        case LFUN_WORD_FORWARD:
+       case LFUN_WORD_RIGHT:
        case LFUN_LINE_END:
                cur.updateFlags(Update::Decoration | Update::FitCursor);
        case LFUN_WORD_FORWARD_SELECT:
+       case LFUN_WORD_RIGHT_SELECT:
        case LFUN_LINE_END_SELECT:
                cur.selHandle(cmd.action == LFUN_WORD_FORWARD_SELECT ||
+                               cmd.action == LFUN_WORD_RIGHT_SELECT ||
                                cmd.action == LFUN_LINE_END_SELECT);
                cur.macroModeClose();
                cur.clearTargetX();