]> git.lyx.org Git - features.git/commitdiff
Select the whole paragraph with tripple-left-click
authorKornel Benko <kornel@lyx.org>
Tue, 16 Apr 2019 17:50:31 +0000 (19:50 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 18 Jun 2020 13:48:25 +0000 (15:48 +0200)
Fixes #9175

Also added new function: paragraph-select.

src/FuncCode.h
src/LyXAction.cpp
src/Text3.cpp

index 2d9a5eda0f6f3501a0cf4be8fc35cc046dc2aa21..7a2c2cf1f2c1a7dcd5210342e38a21510cc5b475 100644 (file)
@@ -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
 };
 
index a9422d3b1230923703e039365db9d58a19a8d745..c2738f9363336b0d4c11b61c81dcf573bd1201a4 100644 (file)
@@ -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
index 59f2f2078742c9294e7fa4cca2d1a7cadab170ee..7e24041cef7f7918aa64dd6341970f44b8e613ea 100644 (file)
@@ -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: