aboutsummaryrefslogtreecommitdiff
path: root/server-client.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2013-07-05 16:24:13 +0100
committerNicholas Marriott <nicholas.marriott@gmail.com>2013-07-05 16:24:13 +0100
commite496a548d7b07c9a4be9ce8e750cf5423e3bafe3 (patch)
tree26b867940c5174e44894050a493a70a5118ba968 /server-client.c
parent3d39b18e319cdd96bf25debcfcf52c03120e3d8e (diff)
parentc7a121cfc0137c907b7bfb0c3fd1bdee395af8aa (diff)
downloadrtmux-e496a548d7b07c9a4be9ce8e750cf5423e3bafe3.tar.gz
rtmux-e496a548d7b07c9a4be9ce8e750cf5423e3bafe3.tar.bz2
rtmux-e496a548d7b07c9a4be9ce8e750cf5423e3bafe3.zip
Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code
Diffstat (limited to 'server-client.c')
-rw-r--r--server-client.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/server-client.c b/server-client.c
index 1c15a555..01616cbf 100644
--- a/server-client.c
+++ b/server-client.c
@@ -548,6 +548,15 @@ server_client_check_focus(struct window_pane *wp)
{
u_int i;
struct client *c;
+ int push;
+
+ /* Are focus events off? */
+ if (!options_get_number(&global_options, "focus-events"))
+ return;
+
+ /* 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))
@@ -580,13 +589,13 @@ server_client_check_focus(struct window_pane *wp)
}
not_focused:
- if (wp->flags & PANE_FOCUSED)
+ if (push || (wp->flags & PANE_FOCUSED))
bufferevent_write(wp->event, "\033[O", 3);
wp->flags &= ~PANE_FOCUSED;
return;
focused:
- if (!(wp->flags & PANE_FOCUSED))
+ if (push || !(wp->flags & PANE_FOCUSED))
bufferevent_write(wp->event, "\033[I", 3);
wp->flags |= PANE_FOCUSED;
}