=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/window.c,v retrieving revision 1.266 retrieving revision 1.267 diff -c -r1.266 -r1.267 *** src/usr.bin/tmux/window.c 2020/06/13 09:05:53 1.266 --- src/usr.bin/tmux/window.c 2020/12/15 08:31:50 1.267 *************** *** 1,4 **** ! /* $OpenBSD: window.c,v 1.266 2020/06/13 09:05:53 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: window.c,v 1.267 2020/12/15 08:31:50 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 1145,1156 **** window_pane_reset_mode(wp); } int window_pane_key(struct window_pane *wp, struct client *c, struct session *s, struct winlink *wl, key_code key, struct mouse_event *m) { struct window_mode_entry *wme; - struct window_pane *wp2; if (KEYC_IS_MOUSE(key) && m == NULL) return (-1); --- 1145,1171 ---- window_pane_reset_mode(wp); } + static void + window_pane_copy_key(struct window_pane *wp, key_code key) + { + struct window_pane *loop; + + TAILQ_FOREACH(loop, &wp->window->panes, entry) { + if (loop != wp && + TAILQ_EMPTY(&loop->modes) && + loop->fd != -1 && + (~loop->flags & PANE_INPUTOFF) && + window_pane_visible(loop) && + options_get_number(loop->options, "synchronize-panes")) + input_key_pane(loop, key, NULL); + } + } + int window_pane_key(struct window_pane *wp, struct client *c, struct session *s, struct winlink *wl, key_code key, struct mouse_event *m) { struct window_mode_entry *wme; if (KEYC_IS_MOUSE(key) && m == NULL) return (-1); *************** *** 1172,1187 **** if (KEYC_IS_MOUSE(key)) return (0); ! if (options_get_number(wp->window->options, "synchronize-panes")) { ! TAILQ_FOREACH(wp2, &wp->window->panes, entry) { ! if (wp2 != wp && ! TAILQ_EMPTY(&wp2->modes) && ! wp2->fd != -1 && ! (~wp2->flags & PANE_INPUTOFF) && ! window_pane_visible(wp2)) ! input_key_pane(wp2, key, NULL); ! } ! } return (0); } --- 1187,1194 ---- if (KEYC_IS_MOUSE(key)) return (0); ! if (options_get_number(wp->options, "synchronize-panes")) ! window_pane_copy_key(wp, key); return (0); }