latest patch attached
hope this can go in
Index: src/LyXAction.C =================================================================== --- src/LyXAction.C (revision 13671) +++ src/LyXAction.C (working copy) @@ -353,6 +353,8 @@ { LFUN_MOUSE_RELEASE, "", ReadOnly }, { LFUN_MOUSE_DOUBLE, "", ReadOnly }, { LFUN_MOUSE_TRIPLE, "", ReadOnly }, + { LFUN_PARAGRAPH_MOVE_DOWN, "paragraph-move-down", Noop }, + { LFUN_PARAGRAPH_MOVE_UP, "paragraph-move-up", Noop }, { LFUN_NOACTION, "", Noop } }; Index: src/lyxfunc.C =================================================================== --- src/lyxfunc.C (revision 13671) +++ src/lyxfunc.C (working copy) @@ -561,6 +561,16 @@ flag = getStatus(func); } + case LFUN_PARAGRAPH_MOVE_UP: { + enable = cur.pit() > 0 && !cur.selection(); + break; + } + + case LFUN_PARAGRAPH_MOVE_DOWN: { + enable = cur.pit() < cur.lastpit() && !cur.selection(); + break; + } + case LFUN_MENUNEW: case LFUN_MENUNEWTMPLT: case LFUN_WORDFINDFORWARD: Index: src/text3.C =================================================================== --- src/text3.C (revision 13671) +++ src/text3.C (working copy) @@ -44,6 +44,7 @@ #include "ParagraphParameters.h" #include "undo.h" #include "vspace.h" +#include "pariterator.h" #include "frontends/Dialogs.h" #include "frontends/LyXView.h" @@ -321,6 +322,36 @@ switch (cmd.action) { + case LFUN_PARAGRAPH_MOVE_DOWN: { + pit_type const pit = cur.pit(); + recUndo(pit, pit + 1); + finishUndo(); + std::swap(pars_[pit], pars_[pit + 1]); + ++cur.pit(); + + ParIterator parit(cur); + if (needsUpdateCounters(cur.buffer(), parit)) + updateCounters(cur.buffer()); + + needsUpdate = true; + break; + } + + case LFUN_PARAGRAPH_MOVE_UP: { + pit_type const pit = cur.pit(); + recUndo(pit - 1, pit); + finishUndo(); + std::swap(pars_[pit], pars_[pit - 1]); + --cur.pit(); + + ParIterator parit(cur); + if (needsUpdateCounters(cur.buffer(), parit)) + updateCounters(cur.buffer()); + + needsUpdate = true; + break; + } + case LFUN_APPENDIX: { Paragraph & par = cur.paragraph(); bool start = !par.params().startOfAppendix(); Index: src/lfuns.h =================================================================== --- src/lfuns.h (revision 13671) +++ src/lfuns.h (working copy) @@ -358,6 +358,9 @@ LFUN_BIBDB_DEL, LFUN_INSERT_CITATION, LFUN_OUTLINE, // Vermeer 20060323 + // 275 + LFUN_PARAGRAPH_MOVE_DOWN, // Edwin 20060408 + LFUN_PARAGRAPH_MOVE_UP, // Edwin 20060408 LFUN_LASTACTION // end of the table }; Index: lib/bind/cua.bind =================================================================== --- lib/bind/cua.bind (revision 13671) +++ lib/bind/cua.bind (working copy) @@ -102,6 +102,8 @@ # Motion group # +\bind "M-Up" "paragraph-move-up" +\bind "M-Down" "paragraph-move-down" \bind "C-Right" "word-forward" \bind "C-Left" "word-backward" \bind "C-Up" "paragraph-up" Index: lib/bind/emacs.bind =================================================================== --- lib/bind/emacs.bind (revision 13671) +++ lib/bind/emacs.bind (working copy) @@ -139,6 +139,8 @@ # Motion group # +\bind "M-Up" "paragraph-move-up" +\bind "M-Down" "paragraph-move-down" \bind "C-Right" "word-forward" \bind "C-Left" "word-backward" \bind "C-Up" "paragraph-up"