=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/server-client.c,v retrieving revision 1.101 retrieving revision 1.102 diff -c -r1.101 -r1.102 *** src/usr.bin/tmux/server-client.c 2013/04/21 21:32:00 1.101 --- src/usr.bin/tmux/server-client.c 2013/06/23 12:51:28 1.102 *************** *** 1,4 **** ! /* $OpenBSD: server-client.c,v 1.101 2013/04/21 21:32:00 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: server-client.c,v 1.102 2013/06/23 12:51:28 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott *************** *** 548,554 **** --- 548,559 ---- { u_int i; struct client *c; + int push; + /* Do we need to push the focus state? */ + push = wp->flags & PANE_FOCUSPUSH; + wp->flags &= ~PANE_FOCUSPUSH; + /* If we don't care about focus, forget it. */ if (!(wp->base.mode & MODE_FOCUSON)) return; *************** *** 580,592 **** } not_focused: ! if (wp->flags & PANE_FOCUSED) bufferevent_write(wp->event, "\033[O", 3); wp->flags &= ~PANE_FOCUSED; return; focused: ! if (!(wp->flags & PANE_FOCUSED)) bufferevent_write(wp->event, "\033[I", 3); wp->flags |= PANE_FOCUSED; } --- 585,597 ---- } not_focused: ! if (push || (wp->flags & PANE_FOCUSED)) bufferevent_write(wp->event, "\033[O", 3); wp->flags &= ~PANE_FOCUSED; return; focused: ! if (push || !(wp->flags & PANE_FOCUSED)) bufferevent_write(wp->event, "\033[I", 3); wp->flags |= PANE_FOCUSED; }