diff --git a/lib/bind/cua.bind b/lib/bind/cua.bind index 9e826cc299..f7a7b19ee5 100644 --- a/lib/bind/cua.bind +++ b/lib/bind/cua.bind @@ -84,6 +84,7 @@ \bind "C-S-Z" "redo" \bind "C-a" "command-sequence buffer-begin ; buffer-end-select" # select all +\bind "C-M-a" "inset-select-all" \bind "C-S-E" "changes-track" # it's what MS Word uses \bind "~S-M-quotedbl" "quote-insert single" diff --git a/lib/bind/mac.bind b/lib/bind/mac.bind index cedfeb5bf4..c1631f58c9 100644 --- a/lib/bind/mac.bind +++ b/lib/bind/mac.bind @@ -74,6 +74,7 @@ \bind "C-S-Z" "redo" \bind "C-a" "command-sequence buffer-begin ; buffer-end-select" # select all +\bind "C-M-a" "inset-select-all" \bind "C-S-E" "changes-track" # it's what MS Word uses \bind "~S-M-quotedbl" "quote-insert single" diff --git a/src/FuncCode.h b/src/FuncCode.h index b6c984c9a8..2a1b7677d0 100644 --- a/src/FuncCode.h +++ b/src/FuncCode.h @@ -422,7 +422,7 @@ enum FuncCode // 325 LFUN_INSET_BEGIN_SELECT, // JMarc, 20090316 LFUN_INSET_END_SELECT, // JMarc, 20090316 - LFUN_SCREEN_SHOW_CURSOR, // vfr, 20090325 + LFUN_INSET_SELECT_ALL, // vfr, 20090822 LFUN_BUFFER_ZOOM_IN, // vfr, 20090330 LFUN_BUFFER_ZOOM_OUT, // vfr, 20090330 // 330 @@ -441,6 +441,7 @@ enum FuncCode LFUN_BRANCHES_RENAME, // spitz 20090709 LFUN_BUFFER_CLOSE_ALL, // vfr 20090806 LFUN_GRAPHICS_RELOAD, // vfr 20090810 + LFUN_SCREEN_SHOW_CURSOR, // vfr, 20090325 LFUN_LASTACTION // end of the table }; diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp index b0a3a03571..6df834e925 100644 --- a/src/LyXAction.cpp +++ b/src/LyXAction.cpp @@ -1073,6 +1073,15 @@ void LyXAction::init() */ { LFUN_INSET_END_SELECT, "inset-end-select", ReadOnly, Edit }, +/*! + * \var lyx::FuncCode lyx::LFUN_INSET_SELECT_ALL + * \li Action: Selects all contents of an inset. + * \li Syntax: inset-select-all + * \li Origin: vfr, 22 Aug 2009 + * \endvar + */ + { LFUN_INSET_SELECT_ALL, "inset-select-all", ReadOnly, Edit }, + /*! * \var lyx::FuncCode lyx::LFUN_LINE_BEGIN * \li Action: Move the cursor to the begining of the (screen) line. diff --git a/src/Text3.cpp b/src/Text3.cpp index 28be96930e..be9a189029 100644 --- a/src/Text3.cpp +++ b/src/Text3.cpp @@ -641,6 +641,18 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd) cur.updateFlags(Update::FitCursor); break; + case LFUN_INSET_SELECT_ALL: + if (cur.depth() == 1 || !cur.selection() || !cur.selBegin().at_begin() + || !cur.selEnd().at_end()) { + needsUpdate |= cur.selHandle(false); + needsUpdate |= cursorTop(cur); + needsUpdate |= cur.selHandle(true); + needsUpdate |= cursorBottom(cur); + } else + cur.undispatched(); + cur.updateFlags(Update::FitCursor); + break; + case LFUN_CHAR_FORWARD: case LFUN_CHAR_FORWARD_SELECT: //LYXERR0(" LFUN_CHAR_FORWARD[SEL]:\n" << cur); @@ -2673,6 +2685,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd, case LFUN_INSET_END: case LFUN_INSET_BEGIN_SELECT: case LFUN_INSET_END_SELECT: + case LFUN_INSET_SELECT_ALL: case LFUN_UNICODE_INSERT: // these are handled in our dispatch() enable = true;