summaryrefslogtreecommitdiffstats
path: root/input-keys.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2014-11-09 00:15:51 +0000
committerThomas Adam <thomas@xteddy.org>2014-11-09 00:15:51 +0000
commitfc05bf255af2a39a8168320455f79e7e6d9e915a (patch)
tree513fd3ba523bb758a8977f12618f667ad3a5247d /input-keys.c
parent747cab428158eada08a87a2c0e1ac917ba3293e1 (diff)
parent8f1302282b02f07e0868fbcdb79bb5404010ad4e (diff)
Merge branch 'obsd-master'
Diffstat (limited to 'input-keys.c')
-rw-r--r--input-keys.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/input-keys.c b/input-keys.c
index da64865d..ef652ee1 100644
--- a/input-keys.c
+++ b/input-keys.c
@@ -204,6 +204,7 @@ input_mouse(struct window_pane *wp, struct session *s, struct mouse_event *m)
char buf[40];
size_t len;
struct paste_buffer *pb;
+ int event;
if (wp->screen->mode & ALL_MOUSE_MODES) {
/*
@@ -237,19 +238,16 @@ input_mouse(struct window_pane *wp, struct session *s, struct mouse_event *m)
return;
}
- if (m->button == 1 && (m->event & MOUSE_EVENT_CLICK) &&
- options_get_number(&wp->window->options, "mode-mouse") == 1) {
+ if (options_get_number(&wp->window->options, "mode-mouse") != 1)
+ return;
+ event = m->event & (MOUSE_EVENT_CLICK|MOUSE_EVENT_WHEEL);
+ if (wp->mode == NULL && m->button == 1 && event == MOUSE_EVENT_CLICK) {
pb = paste_get_top();
- if (pb != NULL) {
- paste_send_pane(pb, wp, "\r",
- wp->screen->mode & MODE_BRACKETPASTE);
- }
- } else if (m->button != 1 &&
- options_get_number(&wp->window->options, "mode-mouse") == 1) {
- if (window_pane_set_mode(wp, &window_copy_mode) == 0) {
- window_copy_init_from_pane(wp);
- if (wp->mode->mouse != NULL)
- wp->mode->mouse(wp, s, m);
- }
+ if (pb != NULL)
+ paste_send_pane(pb, wp, "\r", 1);
+ } else if (window_pane_set_mode(wp, &window_copy_mode) == 0) {
+ window_copy_init_from_pane(wp);
+ if (wp->mode->mouse != NULL)
+ wp->mode->mouse(wp, s, m);
}
}