summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm>2016-03-18 07:28:27 +0000
committernicm <nicm>2016-03-18 07:28:27 +0000
commitfa97b0a95b804fec86b03d35d16c270d2866ebd6 (patch)
tree9502ac3e0816167e912a8ad19fe826c7af15897e
parent0d6de44a37755f0e5046c04e19e4506a6d59e750 (diff)
Instead of reusing MouseUp at the finish of a drag, add a new key
MouseDragEnd. It can be useful to bind them separately in copy mode.
-rw-r--r--key-string.c3
-rw-r--r--mode-key.c4
-rw-r--r--server-client.c22
-rw-r--r--tmux.18
-rw-r--r--tmux.h3
5 files changed, 23 insertions, 17 deletions
diff --git a/key-string.c b/key-string.c
index c56681f1..119035a0 100644
--- a/key-string.c
+++ b/key-string.c
@@ -93,6 +93,9 @@ const struct {
KEYC_MOUSE_STRING(MOUSEDRAG1, MouseDrag1),
KEYC_MOUSE_STRING(MOUSEDRAG2, MouseDrag2),
KEYC_MOUSE_STRING(MOUSEDRAG3, MouseDrag3),
+ KEYC_MOUSE_STRING(MOUSEDRAGEND1, MouseDragEnd1),
+ KEYC_MOUSE_STRING(MOUSEDRAGEND2, MouseDragEnd2),
+ KEYC_MOUSE_STRING(MOUSEDRAGEND3, MouseDragEnd3),
KEYC_MOUSE_STRING(WHEELUP, WheelUp),
KEYC_MOUSE_STRING(WHEELDOWN, WheelDown),
};
diff --git a/mode-key.c b/mode-key.c
index a9b15bb9..aed161bb 100644
--- a/mode-key.c
+++ b/mode-key.c
@@ -347,7 +347,7 @@ const struct mode_key_entry mode_key_vi_copy[] = {
{ KEYC_WHEELUP_PANE, 0, MODEKEYCOPY_SCROLLUP },
{ KEYC_WHEELDOWN_PANE, 0, MODEKEYCOPY_SCROLLDOWN },
{ KEYC_MOUSEDRAG1_PANE, 0, MODEKEYCOPY_STARTSELECTION },
- { KEYC_MOUSEUP1_PANE, 0, MODEKEYCOPY_COPYSELECTION },
+ { KEYC_MOUSEDRAGEND1_PANE, 0, MODEKEYCOPY_COPYSELECTION },
{ 0, -1, 0 }
};
@@ -496,7 +496,7 @@ const struct mode_key_entry mode_key_emacs_copy[] = {
{ KEYC_WHEELUP_PANE, 0, MODEKEYCOPY_SCROLLUP },
{ KEYC_WHEELDOWN_PANE, 0, MODEKEYCOPY_SCROLLDOWN },
{ KEYC_MOUSEDRAG1_PANE, 0, MODEKEYCOPY_STARTSELECTION },
- { KEYC_MOUSEUP1_PANE, 0, MODEKEYCOPY_COPYSELECTION },
+ { KEYC_MOUSEDRAGEND1_PANE, 0, MODEKEYCOPY_COPYSELECTION },
{ 0, -1, 0 }
};
diff --git a/server-client.c b/server-client.c
index 9111eb82..6166eac4 100644
--- a/server-client.c
+++ b/server-client.c
@@ -385,33 +385,33 @@ server_client_check_mouse(struct client *c)
c->tty.mouse_drag_release = NULL;
/*
- * End a mouse drag by passing a MouseUp key corresponding to
- * the button that started the drag.
+ * End a mouse drag by passing a MouseDragEnd key corresponding
+ * to the button that started the drag.
*/
switch (c->tty.mouse_drag_flag) {
case 1:
if (where == PANE)
- key = KEYC_MOUSEUP1_PANE;
+ key = KEYC_MOUSEDRAGEND1_PANE;
if (where == STATUS)
- key = KEYC_MOUSEUP1_STATUS;
+ key = KEYC_MOUSEDRAGEND1_STATUS;
if (where == BORDER)
- key = KEYC_MOUSEUP1_BORDER;
+ key = KEYC_MOUSEDRAGEND1_BORDER;
break;
case 2:
if (where == PANE)
- key = KEYC_MOUSEUP2_PANE;
+ key = KEYC_MOUSEDRAGEND2_PANE;
if (where == STATUS)
- key = KEYC_MOUSEUP2_STATUS;
+ key = KEYC_MOUSEDRAGEND2_STATUS;
if (where == BORDER)
- key = KEYC_MOUSEUP2_BORDER;
+ key = KEYC_MOUSEDRAGEND2_BORDER;
break;
case 3:
if (where == PANE)
- key = KEYC_MOUSEUP3_PANE;
+ key = KEYC_MOUSEDRAGEND3_PANE;
if (where == STATUS)
- key = KEYC_MOUSEUP3_STATUS;
+ key = KEYC_MOUSEDRAGEND3_STATUS;
if (where == BORDER)
- key = KEYC_MOUSEUP3_BORDER;
+ key = KEYC_MOUSEDRAGEND3_BORDER;
break;
default:
key = KEYC_MOUSE;
diff --git a/tmux.1 b/tmux.1
index 448673f1..a304e76b 100644
--- a/tmux.1
+++ b/tmux.1
@@ -3294,10 +3294,10 @@ for a pane border or
for the status line).
The following mouse events are available:
.Bl -column "MouseDown1" "MouseDrag1" "WheelDown" -offset indent
-.It Li "MouseDown1" Ta "MouseUp1" Ta "MouseDrag1"
-.It Li "MouseDown2" Ta "MouseUp2" Ta "MouseDrag2"
-.It Li "MouseDown3" Ta "MouseUp3" Ta "MouseDrag3"
-.It Li "WheelUp" Ta "WheelDown" Ta ""
+.It Li "MouseDown1" Ta "MouseUp1" Ta "MouseDrag1" Ta "MouseDragEnd1"
+.It Li "MouseDown2" Ta "MouseUp2" Ta "MouseDrag2" Ta "MouseDragEnd2"
+.It Li "MouseDown3" Ta "MouseUp3" Ta "MouseDrag3" Ta "MouseDragEnd3"
+.It Li "WheelUp" Ta "WheelDown" Ta "" Ta ""
.El
.Pp
Each should be suffixed with a location, for example
diff --git a/tmux.h b/tmux.h
index ac94d780..b2445fce 100644
--- a/tmux.h
+++ b/tmux.h
@@ -135,6 +135,9 @@ enum {
KEYC_MOUSE_KEY(MOUSEDRAG1),
KEYC_MOUSE_KEY(MOUSEDRAG2),
KEYC_MOUSE_KEY(MOUSEDRAG3),
+ KEYC_MOUSE_KEY(MOUSEDRAGEND1),
+ KEYC_MOUSE_KEY(MOUSEDRAGEND2),
+ KEYC_MOUSE_KEY(MOUSEDRAGEND3),
KEYC_MOUSE_KEY(WHEELUP),
KEYC_MOUSE_KEY(WHEELDOWN),