aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server-client.c7
-rw-r--r--tty.c16
2 files changed, 14 insertions, 9 deletions
diff --git a/server-client.c b/server-client.c
index 055f192c..9b83fe13 100644
--- a/server-client.c
+++ b/server-client.c
@@ -449,9 +449,14 @@ server_client_reset_state(struct client *c)
else
tty_cursor(&c->tty, wp->xoff + s->cx, wp->yoff + s->cy);
+ /*
+ * Any mode will do for mouse-select-pane, but set standard mode if
+ * none.
+ */
mode = s->mode;
if (TAILQ_NEXT(TAILQ_FIRST(&w->panes), entry) != NULL &&
- options_get_number(oo, "mouse-select-pane"))
+ options_get_number(oo, "mouse-select-pane") &&
+ (mode & ALL_MOUSE_MODES) == 0)
mode |= MODE_MOUSE_STANDARD;
/*
diff --git a/tty.c b/tty.c
index aff0d08a..497dacc6 100644
--- a/tty.c
+++ b/tty.c
@@ -401,19 +401,19 @@ tty_update_mode(struct tty *tty, int mode)
if (mode & ALL_MOUSE_MODES) {
if (mode & MODE_MOUSE_UTF8)
tty_puts(tty, "\033[?1005h");
- if (mode & MODE_MOUSE_STANDARD)
- tty_puts(tty, "\033[?1000h");
+ if (mode & MODE_MOUSE_ANY)
+ tty_puts(tty, "\033[?1003h");
else if (mode & MODE_MOUSE_BUTTON)
tty_puts(tty, "\033[?1002h");
- else if (mode & MODE_MOUSE_ANY)
- tty_puts(tty, "\033[?1003h");
+ else if (mode & MODE_MOUSE_STANDARD)
+ tty_puts(tty, "\033[?1000h");
} else {
- if (tty->mode & MODE_MOUSE_STANDARD)
- tty_puts(tty, "\033[?1000l");
+ if (tty->mode & MODE_MOUSE_ANY)
+ tty_puts(tty, "\033[?1003l");
else if (tty->mode & MODE_MOUSE_BUTTON)
tty_puts(tty, "\033[?1002l");
- else if (tty->mode & MODE_MOUSE_ANY)
- tty_puts(tty, "\033[?1003l");
+ else if (tty->mode & MODE_MOUSE_STANDARD)
+ tty_puts(tty, "\033[?1000l");
if (tty->mode & MODE_MOUSE_UTF8)
tty_puts(tty, "\033[?1005l");
}