commit e0f5641089b5d2498b0e25303c5c86ed5a136e76
Author: Kornel Benko <[email protected]>
Date: Tue Apr 16 19:50:31 2019 +0200
Select the whole paragraph with tripple-left-click
Fixes #9175
Also added new function: paragraph-select.
---
src/FuncCode.h | 1 +
src/LyXAction.cpp | 9 +++++++++
src/Text3.cpp | 16 ++++++++++++++--
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/src/FuncCode.h b/src/FuncCode.h
index 2d9a5ed..7a2c2cf 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 a9422d3..c2738f9 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 59f2f20..7e24041 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: