The branch, master has been updated via 3d9fd1c7f2724b887ec6d2ea07edf3bf70385d75 (commit) from d1e8fb33dab9d2ed2888263d98da1e8d12a4e4e5 (commit)
- Log ----------------------------------------------------------------- commit 3d9fd1c7f2724b887ec6d2ea07edf3bf70385d75 Author: Nicholas Marriott <nicholas.marri...@gmail.com> Commit: Nicholas Marriott <nicholas.marri...@gmail.com> Add various checks to turn off bits that can't work in control mode (such as lock). --- server-client.c | 13 ++++++++++--- server-fn.c | 3 +++ server-window.c | 4 ++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/server-client.c b/server-client.c index e683a20..e7c117f 100644 --- a/server-client.c +++ b/server-client.c @@ -355,6 +355,7 @@ server_client_handle_key(struct client *c, int key) /* Check the client is good to accept input. */ if ((c->flags & (CLIENT_DEAD|CLIENT_SUSPENDED)) != 0) return; + if (c->session == NULL) return; s = c->session; @@ -528,6 +529,9 @@ server_client_reset_state(struct client *c) if (c->flags & CLIENT_SUSPENDED) return; + if (c->flags & CLIENT_CONTROL) + return; + tty_region(&c->tty, 0, c->tty.sy - 1); status = options_get_number(oo, "status"); @@ -625,7 +629,7 @@ server_client_check_redraw(struct client *c) struct window_pane *wp; int flags, redraw; - if (c->flags & CLIENT_SUSPENDED) + if (c->flags & (CLIENT_CONTROL|CLIENT_SUSPENDED)) return; flags = c->tty.flags & TTY_FREEZE; @@ -755,6 +759,8 @@ server_client_msg_dispatch(struct client *c) if (datalen != 0) fatalx("bad MSG_RESIZE size"); + if (c->flags & CLIENT_CONTROL) + break; if (tty_resize(&c->tty)) { recalculate_sizes(); server_redraw_client(c); @@ -924,7 +930,7 @@ server_client_msg_identify( if (data->flags & IDENTIFY_CONTROL) { c->stdin_callback = control_callback; - c->flags |= (CLIENT_CONTROL|CLIENT_SUSPENDED); + c->flags |= CLIENT_CONTROL; server_write_client(c, MSG_STDIN, NULL, 0); c->tty.fd = -1; @@ -949,7 +955,8 @@ server_client_msg_identify( tty_resize(&c->tty); - c->flags |= CLIENT_TERMINAL; + if (!(data->flags & IDENTIFY_CONTROL)) + c->flags |= CLIENT_TERMINAL; } /* Handle shell message. */ diff --git a/server-fn.c b/server-fn.c index b21d94a..87811c1 100644 --- a/server-fn.c +++ b/server-fn.c @@ -239,6 +239,9 @@ server_lock_client(struct client *c) size_t cmdlen; struct msg_lock_data lockdata; + if (!(c->flags & CLIENT_CONTROL)) + return; + if (c->flags & CLIENT_SUSPENDED) return; diff --git a/server-window.c b/server-window.c index fce6439..4f5a550 100644 --- a/server-window.c +++ b/server-window.c @@ -85,7 +85,7 @@ server_window_check_bell(struct session *s, struct winlink *wl) return (0); for (i = 0; i < ARRAY_LENGTH(&clients); i++) { c = ARRAY_ITEM(&clients, i); - if (c == NULL || c->session != s) + if (c == NULL || c->session != s || (c->flags & CLIENT_CONTROL)) continue; if (!visual) { tty_bell(&c->tty); @@ -242,7 +242,7 @@ ring_bell(struct session *s) for (i = 0; i < ARRAY_LENGTH(&clients); i++) { c = ARRAY_ITEM(&clients, i); - if (c != NULL && c->session == s) + if (c != NULL && c->session == s && !(c->flags & CLIENT_CONTROL)) tty_bell(&c->tty); } } ----------------------------------------------------------------------- Summary of changes: server-client.c | 13 ++++++++++--- server-fn.c | 3 +++ server-window.c | 4 ++-- 3 files changed, 15 insertions(+), 5 deletions(-) hooks/post-receive -- tmux ------------------------------------------------------------------------------ The Go Parallel Website, sponsored by Intel - in partnership with Geeknet, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials, tech docs, whitepapers, evaluation guides, and opinion stories. Check out the most recent posts - join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ tmux-cvs mailing list tmux-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-cvs