diff --git a/src/ChangeLog b/src/ChangeLog index 776dbd7141..1b5f3d1878 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2002-09-11 André Pönitz + + * commandtags.h: + * LyXAction.C: + * text3.C: implement LFUN_WORDSEL + 2002-09-11 Lars Gullik Bjřnnes * lyxtextclass.h: don't include FloatList.h, forward declare instead. diff --git a/src/LyXAction.C b/src/LyXAction.C index a12086705f..3d26ffe271 100644 --- a/src/LyXAction.C +++ b/src/LyXAction.C @@ -398,6 +398,7 @@ void LyXAction::init() { LFUN_WORDRIGHT, "word-forward", "", ReadOnly }, { LFUN_WORDRIGHTSEL, "word-forward-select", "", ReadOnly }, { LFUN_LOWCASE_WORD, "word-lowcase", "", Noop }, + { LFUN_WORDSEL, "word-select", "", ReadOnly }, { LFUN_UPCASE_WORD, "word-upcase", "", Noop }, { LFUN_MESSAGE, "message", N_("Show message in minibuffer"), NoBuffer }, diff --git a/src/commandtags.h b/src/commandtags.h index fd6692bee9..8666699b7a 100644 --- a/src/commandtags.h +++ b/src/commandtags.h @@ -82,6 +82,7 @@ enum kb_action { LFUN_ENDSEL, // 60 LFUN_WORDRIGHTSEL, LFUN_WORDLEFTSEL, + LFUN_WORDSEL, LFUN_BEGINNINGBUFSEL, LFUN_ENDBUFSEL, LFUN_PROTECTEDSPACE, diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 7311149c41..6323ac98db 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,8 @@ + +2002-09-11 André Pönitz + + * insettabular.C: implement LFUN_WORDSEL + 2002-09-10 John Levon * insetinclude.h: remove unused param diff --git a/src/insets/insettabular.C b/src/insets/insettabular.C index b37fd8a857..c60e46324f 100644 --- a/src/insets/insettabular.C +++ b/src/insets/insettabular.C @@ -1126,6 +1126,7 @@ Inset::RESULT InsetTabular::localDispatch(FuncRequest const & cmd) case LFUN_WORDLEFTSEL: case LFUN_WORDRIGHT: case LFUN_WORDRIGHTSEL: + case LFUN_WORDSEL: case LFUN_DOWN_PARAGRAPH: case LFUN_DOWN_PARAGRAPHSEL: case LFUN_UP_PARAGRAPH: diff --git a/src/mathed/formulabase.C b/src/mathed/formulabase.C index d5d69ef12d..c2bab3f875 100644 --- a/src/mathed/formulabase.C +++ b/src/mathed/formulabase.C @@ -463,6 +463,12 @@ Inset::RESULT InsetFormulaBase::localDispatch(FuncRequest const & cmd) updateLocal(bv, false); break; + case LFUN_WORDSEL: + mathcursor->home(false); + mathcursor->end(true); + updateLocal(bv, false); + break; + case LFUN_HOMESEL: sel = true; // fall through case LFUN_HOME: diff --git a/src/text.C b/src/text.C index 097d595e1e..e435cd7a36 100644 --- a/src/text.C +++ b/src/text.C @@ -2284,7 +2284,7 @@ void LyXText::cursorLeftOneWord(BufferView * bview) const } -void LyXText::cursorLeftOneWord(LyXCursor & cur) const +void LyXText::cursorLeftOneWord(LyXCursor & cur) const { // treat HFills, floats and Insets as words cur = cursor; @@ -2306,7 +2306,7 @@ void LyXText::cursorLeftOneWord(LyXCursor & cur) const } } else { // Here, cur != 0 while (cur.pos() > 0 && - cur.par()->isWord(cur.pos()-1)) + cur.par()->isWord(cur.pos() - 1)) cur.pos(cur.pos() - 1); } } @@ -2324,8 +2324,8 @@ void LyXText::getWord(LyXCursor & from, LyXCursor & to, if (cursor.pos() == 0 || cursor.pos() == cursor.par()->size() || cursor.par()->isSeparator(cursor.pos()) || cursor.par()->isKomma(cursor.pos()) - || cursor.par()->isSeparator(cursor.pos() -1) - || cursor.par()->isKomma(cursor.pos() -1)) { + || cursor.par()->isSeparator(cursor.pos() - 1) + || cursor.par()->isKomma(cursor.pos() - 1)) { to = from; return; } diff --git a/src/text3.C b/src/text3.C index eae7919996..1fe5b84b04 100644 --- a/src/text3.C +++ b/src/text3.C @@ -553,6 +553,18 @@ Inset::RESULT LyXText::dispatch(FuncRequest const & cmd) finishChange(bv, true); break; + case LFUN_WORDSEL: { + update(bv, false); + LyXCursor cur1; + LyXCursor cur2; + getWord(cur1, cur2, WHOLE_WORD); + setCursor(bv, cur1.par(), cur1.pos()); + bv->beforeChange(this); + setCursor(bv, cur2.par(), cur2.pos()); + finishChange(bv, true); + break; + } + case LFUN_RIGHT: { bool is_rtl = cursor.par()->isRightToLeftPar(bv->buffer()->params); if (!selection.mark())