aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--key-bindings.c22
-rw-r--r--server-client.c21
2 files changed, 26 insertions, 17 deletions
diff --git a/key-bindings.c b/key-bindings.c
index 9bc61b62..e8eedca5 100644
--- a/key-bindings.c
+++ b/key-bindings.c
@@ -259,12 +259,13 @@ key_bindings_init(void)
"bind -Tcopy-mode n send -X search-again",
"bind -Tcopy-mode q send -X cancel",
"bind -Tcopy-mode t command-prompt -1p'jump to forward' \"send -X jump-to-forward \\\"%%%\\\"\"",
- "bind -Tcopy-mode MouseDrag1Pane send -X begin-selection",
+ "bind -Tcopy-mode MouseDown1Pane select-pane",
+ "bind -Tcopy-mode MouseDrag1Pane select-pane\\; send -X begin-selection",
"bind -Tcopy-mode MouseDragEnd1Pane send -X copy-selection-and-cancel",
- "bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up",
- "bind -Tcopy-mode WheelDownPane send -N5 -X scroll-down",
- "bind -Tcopy-mode DoubleClick1Pane send -X select-word",
- "bind -Tcopy-mode TripleClick1Pane send -X select-line",
+ "bind -Tcopy-mode WheelUpPane select-pane\\; send -N5 -X scroll-up",
+ "bind -Tcopy-mode WheelDownPane select-pane\\; send -N5 -X scroll-down",
+ "bind -Tcopy-mode DoubleClick1Pane select-pane\\; send -X select-word",
+ "bind -Tcopy-mode TripleClick1Pane select-pane\\; send -X select-line",
"bind -Tcopy-mode NPage send -X page-down",
"bind -Tcopy-mode PPage send -X page-up",
"bind -Tcopy-mode Up send -X cursor-up",
@@ -356,12 +357,13 @@ key_bindings_init(void)
"bind -Tcopy-mode-vi w send -X next-word",
"bind -Tcopy-mode-vi { send -X previous-paragraph",
"bind -Tcopy-mode-vi } send -X next-paragraph",
- "bind -Tcopy-mode-vi MouseDrag1Pane send -X begin-selection",
+ "bind -Tcopy-mode-vi MouseDown1Pane select-pane",
+ "bind -Tcopy-mode-vi MouseDrag1Pane select-pane\\; send -X begin-selection",
"bind -Tcopy-mode-vi MouseDragEnd1Pane send -X copy-selection-and-cancel",
- "bind -Tcopy-mode-vi WheelUpPane send -N5 -X scroll-up",
- "bind -Tcopy-mode-vi WheelDownPane send -N5 -X scroll-down",
- "bind -Tcopy-mode-vi DoubleClick1Pane send -X select-word",
- "bind -Tcopy-mode-vi TripleClick1Pane send -X select-line",
+ "bind -Tcopy-mode-vi WheelUpPane select-pane\\; send -N5 -X scroll-up",
+ "bind -Tcopy-mode-vi WheelDownPane select-pane\\; send -N5 -X scroll-down",
+ "bind -Tcopy-mode-vi DoubleClick1Pane select-pane\\; send -X select-word",
+ "bind -Tcopy-mode-vi TripleClick1Pane select-pane\\; send -X select-line",
"bind -Tcopy-mode-vi BSpace send -X cursor-left",
"bind -Tcopy-mode-vi NPage send -X page-down",
"bind -Tcopy-mode-vi PPage send -X page-up",
diff --git a/server-client.c b/server-client.c
index fbe14e82..dd2a274a 100644
--- a/server-client.c
+++ b/server-client.c
@@ -698,10 +698,6 @@ server_client_handle_key(struct client *c, key_code key)
if (s == NULL || (c->flags & (CLIENT_DEAD|CLIENT_SUSPENDED)) != 0)
return;
w = s->curw->window;
- if (KEYC_IS_MOUSE(key))
- wp = cmd_mouse_pane(m, NULL, NULL);
- else
- wp = w->active;
/* Update the activity timer. */
if (gettimeofday(&c->activity_time, NULL) != 0)
@@ -742,12 +738,19 @@ server_client_handle_key(struct client *c, key_code key)
m->valid = 1;
m->key = key;
-
- if (!options_get_number(s->options, "mouse"))
- goto forward;
} else
m->valid = 0;
+ /* Find affected pane. */
+ if (KEYC_IS_MOUSE(key) && m->valid)
+ wp = cmd_mouse_pane(m, NULL, NULL);
+ else
+ wp = w->active;
+
+ /* Forward mouse keys if disabled. */
+ if (key == KEYC_MOUSE && !options_get_number(s->options, "mouse"))
+ goto forward;
+
/* Treat everything as a regular key when pasting is detected. */
if (!KEYC_IS_MOUSE(key) && server_client_assume_paste(s))
goto forward;
@@ -764,6 +767,10 @@ retry:
table = c->keytable;
else
table = key_bindings_get_table(name, 1);
+ if (wp == NULL)
+ log_debug("key table %s (no pane)", table->name);
+ else
+ log_debug("key table %s (pane %%%u)", table->name, wp->id);
/* Try to see if there is a key binding in the current table. */
bd_find.key = key;