From: Kornel Benko Date: Tue, 16 Apr 2019 17:50:31 +0000 (+0200) Subject: Select the whole paragraph with tripple-left-click X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=24e024914a1a3da6e40518f4859828c2bc02b678;p=features.git Select the whole paragraph with tripple-left-click Fixes #9175 Also added new function: paragraph-select. --- diff --git a/src/FuncCode.h b/src/FuncCode.h index 2d9a5eda0f..7a2c2cf1f2 100644 --- a/src/FuncCode.h +++ b/src/FuncCode.h @@ -484,6 +484,7 @@ enum FuncCode LFUN_SEARCH_IGNORE, // kornel, 20181115 LFUN_BUFFER_WRITE_AS_TEMPLATE, // spitz, 20190323 LFUN_TABULAR_STYLE_INSERT, // spitz, 20190325 + LFUN_PARAGRAPH_SELECT, // Kornel, 20190416 LFUN_LASTACTION // end of the table }; diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp index a9422d3b12..c2738f9363 100644 --- a/src/LyXAction.cpp +++ b/src/LyXAction.cpp @@ -3251,6 +3251,15 @@ void LyXAction::init() */ { LFUN_PARAGRAPH_UPDATE, "", Noop, Hidden }, +/*! + * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_SELECT + * \li Action: Move cursor to beginning of current paragraph + and select to the end in downward direction + * \li Syntax: paragraph-select + * \li Origin: Kornel, 16 Apr 2019 + * \endvar + */ + { LFUN_PARAGRAPH_SELECT, "paragraph-select", ReadOnly, Edit }, /*! * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_UP_SELECT diff --git a/src/Text3.cpp b/src/Text3.cpp index 59f2f20787..7e24041cef 100644 --- a/src/Text3.cpp +++ b/src/Text3.cpp @@ -927,6 +927,14 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) break; } + case LFUN_PARAGRAPH_SELECT: + if (cur.pos() > 0) + needsUpdate |= setCursor(cur, cur.pit(), 0); + needsUpdate |= cur.selHandle(true); + if (cur.pos() < cur.lastpos()) + needsUpdate |= setCursor(cur, cur.pit(), cur.lastpos()); + break; + case LFUN_PARAGRAPH_UP: case LFUN_PARAGRAPH_UP_SELECT: needsUpdate |= cur.selHandle(cmd.action() == LFUN_PARAGRAPH_UP_SELECT); @@ -1762,9 +1770,12 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) case LFUN_MOUSE_TRIPLE: if (cmd.button() == mouse_button::button1) { - tm->cursorHome(cur); + if (cur.pos() > 0) + setCursor(cur, cur.pit(), 0); + bv->cursor() = cur; cur.resetAnchor(); - tm->cursorEnd(cur); + if (cur.pos() < cur.lastpos()) + setCursor(cur, cur.pit(), cur.lastpos()); cur.setSelection(); bv->cursor() = cur; } @@ -3534,6 +3545,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd, case LFUN_UP_SELECT: case LFUN_DOWN: case LFUN_DOWN_SELECT: + case LFUN_PARAGRAPH_SELECT: case LFUN_PARAGRAPH_UP_SELECT: case LFUN_PARAGRAPH_DOWN_SELECT: case LFUN_LINE_BEGIN_SELECT: