aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2015-07-20 20:24:28 -0400
committerJustin M. Keyes <justinkz@gmail.com>2015-07-20 20:24:28 -0400
commitbd753bdacce6e4e935ac7e93f29bf30223131e5e (patch)
treea004170cd442f19404965cd2d06966cd4fe12930 /src
parent0e39b2c93637af3e79bc29b97cffde5b9cd7cd2e (diff)
parent8047570b708c27b68e9a3a50c11de932c3eeab41 (diff)
downloadrneovim-bd753bdacce6e4e935ac7e93f29bf30223131e5e.tar.gz
rneovim-bd753bdacce6e4e935ac7e93f29bf30223131e5e.tar.bz2
rneovim-bd753bdacce6e4e935ac7e93f29bf30223131e5e.zip
Merge #3014 'clipboard: handle middle-click paste correctly.'.
Diffstat (limited to 'src')
-rw-r--r--src/nvim/normal.c6
-rw-r--r--src/nvim/ops.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index a5eb54bb68..95e1c3d113 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -2016,6 +2016,9 @@ do_mouse (
if (regname == '.')
insert_reg(regname, true);
else {
+ if (regname == 0 && eval_has_provider("clipboard")) {
+ regname = '*';
+ }
if ((State & REPLACE_FLAG) && !yank_register_mline(regname))
insert_reg(regname, true);
else {
@@ -2279,6 +2282,9 @@ do_mouse (
* Middle mouse click: Put text before cursor.
*/
if (which_button == MOUSE_MIDDLE) {
+ if (regname == 0 && eval_has_provider("clipboard")) {
+ regname = '*';
+ }
if (yank_register_mline(regname)) {
if (mouse_past_bottom)
dir = FORWARD;
diff --git a/src/nvim/ops.c b/src/nvim/ops.c
index 063ad154f1..8a7ced138b 100644
--- a/src/nvim/ops.c
+++ b/src/nvim/ops.c
@@ -765,7 +765,10 @@ yankreg_T *get_yank_register(int regname, int mode)
if (mode == YREG_PASTE && get_clipboard(regname, &reg, false)) {
// reg is set to clipboard contents.
return reg;
- } else if (mode != YREG_YANK && (regname == 0 || regname == '"') && y_previous != NULL) {
+ } else if (mode != YREG_YANK
+ && (regname == 0 || regname == '"' || regname == '*' || regname == '+')
+ && y_previous != NULL) {
+ // in case clipboard not available, paste from previous used register
return y_previous;
}