diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2009-09-07 21:12:12 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2009-09-07 21:12:12 +0000 |
commit | 3f3b01c7ce503d98ab649fa4aecde741ce63cec0 (patch) | |
tree | e219aa9249b719801118cb54d4b86b16d74472f7 /server.c | |
parent | 51c95747d878405bcbe2077c5c27c6b1a87c48a8 (diff) | |
download | rtmux-3f3b01c7ce503d98ab649fa4aecde741ce63cec0.tar.gz rtmux-3f3b01c7ce503d98ab649fa4aecde741ce63cec0.tar.bz2 rtmux-3f3b01c7ce503d98ab649fa4aecde741ce63cec0.zip |
While the display-panes indicator is on screen, make the number keys select the
pane with that index.
Diffstat (limited to 'server.c')
-rw-r--r-- | server.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -795,6 +795,7 @@ server_accept_client(int srv_fd) void server_handle_client(struct client *c) { + struct window *w; struct window_pane *wp; struct screen *s; struct timeval tv; @@ -818,8 +819,18 @@ server_handle_client(struct client *c) if (c->session == NULL) return; - wp = c->session->curw->window->active; /* could die */ - + w = c->session->curw->window; + wp = w->active; /* could die */ + + /* Special case: number keys jump to pane in identify mode. */ + if (c->flags & CLIENT_IDENTIFY && key >= '0' && key <= '9') { + wp = window_pane_at_index(w, key - '0'); + if (wp != NULL && window_pane_visible(wp)) + window_set_active_pane(w, wp); + server_clear_identify(c); + continue; + } + status_message_clear(c); server_clear_identify(c); if (c->prompt_string != NULL) { |