aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd-copy-mode.c5
-rw-r--r--key-bindings.c2
2 files changed, 5 insertions, 2 deletions
diff --git a/cmd-copy-mode.c b/cmd-copy-mode.c
index 19dca5ff..d729ada6 100644
--- a/cmd-copy-mode.c
+++ b/cmd-copy-mode.c
@@ -68,8 +68,11 @@ cmd_copy_mode_exec(struct cmd *self, struct cmd_q *cmdq)
return (CMD_RETURN_NORMAL);
window_copy_init_from_pane(wp);
}
- if (args_has(args, 'M'))
+ if (args_has(args, 'M')) {
+ if (wp->mode != NULL && wp->mode != &window_copy_mode)
+ return (CMD_RETURN_NORMAL);
window_copy_start_drag(c, &cmdq->item->mouse);
+ }
if (wp->mode == &window_copy_mode && args_has(self->args, 'u'))
window_copy_pageup(wp);
diff --git a/key-bindings.c b/key-bindings.c
index c34db710..670300a7 100644
--- a/key-bindings.c
+++ b/key-bindings.c
@@ -221,7 +221,7 @@ key_bindings_init(void)
"bind -n MouseDown1Pane select-pane -t=\\; send-keys -M",
"bind -n MouseDrag1Border resize-pane -M",
"bind -n MouseDown1Status select-window -t=",
- "bind -n MouseDrag1Pane copy-mode -M",
+ "bind -n MouseDrag1Pane if -Ft= '#{mouse_any_flag}' 'if -Ft= \"#{pane_in_mode}\" \"copy-mode -M\" \"send-keys -M\"' 'copy-mode -M'",
};
u_int i;
struct cmd_list *cmdlist;