summaryrefslogtreecommitdiffstats
path: root/session.c
diff options
context:
space:
mode:
Diffstat (limited to 'session.c')
-rw-r--r--session.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/session.c b/session.c
index 76ad6ddf..8665cccc 100644
--- a/session.c
+++ b/session.c
@@ -487,6 +487,8 @@ session_last(struct session *s)
int
session_set_current(struct session *s, struct winlink *wl)
{
+ struct winlink *old = s->curw;
+
if (wl == NULL)
return (-1);
if (wl == s->curw)
@@ -495,6 +497,10 @@ session_set_current(struct session *s, struct winlink *wl)
winlink_stack_remove(&s->lastw, wl);
winlink_stack_push(&s->lastw, s->curw);
s->curw = wl;
+ if (options_get_number(global_options, "focus-events")) {
+ window_update_focus(old->window);
+ window_update_focus(wl->window);
+ }
winlink_clear_flags(wl);
window_update_activity(wl->window);
tty_update_window_offset(wl->window);