version 1.29, 2010/02/06 18:47:41 |
version 1.30, 2010/02/06 22:55:31 |
|
|
|
|
/* Special case: number keys jump to pane in identify mode. */ |
/* Special case: number keys jump to pane in identify mode. */ |
if (c->flags & CLIENT_IDENTIFY && key >= '0' && key <= '9') { |
if (c->flags & CLIENT_IDENTIFY && key >= '0' && key <= '9') { |
|
if (c->flags & CLIENT_READONLY) |
|
return; |
wp = window_pane_at_index(w, key - '0'); |
wp = window_pane_at_index(w, key - '0'); |
if (wp != NULL && window_pane_visible(wp)) |
if (wp != NULL && window_pane_visible(wp)) |
window_set_active_pane(w, wp); |
window_set_active_pane(w, wp); |
|
|
} |
} |
|
|
/* Handle status line. */ |
/* Handle status line. */ |
status_message_clear(c); |
if (!(c->flags & CLIENT_READONLY)) { |
server_clear_identify(c); |
status_message_clear(c); |
|
server_clear_identify(c); |
|
} |
if (c->prompt_string != NULL) { |
if (c->prompt_string != NULL) { |
status_prompt_key(c, key); |
if (!(c->flags & CLIENT_READONLY)) |
|
status_prompt_key(c, key); |
return; |
return; |
} |
} |
|
|
/* Check for mouse keys. */ |
/* Check for mouse keys. */ |
if (key == KEYC_MOUSE) { |
if (key == KEYC_MOUSE) { |
|
if (c->flags & CLIENT_READONLY) |
|
return; |
if (options_get_number(oo, "mouse-select-pane")) { |
if (options_get_number(oo, "mouse-select-pane")) { |
window_set_active_at(w, mouse->x, mouse->y); |
window_set_active_at(w, mouse->x, mouse->y); |
server_redraw_window_borders(w); |
server_redraw_window_borders(w); |
|
|
c->flags |= CLIENT_PREFIX; |
c->flags |= CLIENT_PREFIX; |
else { |
else { |
/* Try as a non-prefix key binding. */ |
/* Try as a non-prefix key binding. */ |
if ((bd = key_bindings_lookup(key)) == NULL) |
if ((bd = key_bindings_lookup(key)) == NULL) { |
window_pane_key(wp, c, key); |
if (!(c->flags & CLIENT_READONLY)) |
else |
window_pane_key(wp, c, key); |
|
} else |
key_bindings_dispatch(bd, c); |
key_bindings_dispatch(bd, c); |
} |
} |
return; |
return; |
|
|
c->flags &= ~CLIENT_REPEAT; |
c->flags &= ~CLIENT_REPEAT; |
if (isprefix) |
if (isprefix) |
c->flags |= CLIENT_PREFIX; |
c->flags |= CLIENT_PREFIX; |
else |
else if (!(c->flags & CLIENT_READONLY)) |
window_pane_key(wp, c, key); |
window_pane_key(wp, c, key); |
} |
} |
return; |
return; |
|
|
c->flags &= ~CLIENT_REPEAT; |
c->flags &= ~CLIENT_REPEAT; |
if (isprefix) |
if (isprefix) |
c->flags |= CLIENT_PREFIX; |
c->flags |= CLIENT_PREFIX; |
else |
else if (!(c->flags & CLIENT_READONLY)) |
window_pane_key(wp, c, key); |
window_pane_key(wp, c, key); |
return; |
return; |
} |
} |
|
|
{ |
{ |
struct cmd_ctx ctx; |
struct cmd_ctx ctx; |
struct cmd_list *cmdlist = NULL; |
struct cmd_list *cmdlist = NULL; |
struct cmd *cmd; |
|
int argc; |
int argc; |
char **argv, *cause; |
char **argv, *cause; |
|
|