aboutsummaryrefslogtreecommitdiff
path: root/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'server.c')
-rw-r--r--server.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/server.c b/server.c
index c8b96368..a4ef2008 100644
--- a/server.c
+++ b/server.c
@@ -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) {