Bring back window_pane_visible to stop input going to panes which are

hidden by zoom.
This commit is contained in:
Nicholas Marriott 2018-09-10 07:19:17 +01:00
parent 8598fd1bc5
commit a618271e12
3 changed files with 17 additions and 5 deletions

View File

@ -249,6 +249,8 @@ input_key_mouse(struct window_pane *wp, struct mouse_event *m)
return;
if (cmd_mouse_at(wp, m, &x, &y, 0) != 0)
return;
if (!window_pane_visible(wp))
return;
/* If this pane is not in button or all mode, discard motion events. */
if (MOUSE_DRAG(m->b) &&

1
tmux.h
View File

@ -2177,6 +2177,7 @@ int window_pane_set_mode(struct window_pane *,
void window_pane_reset_mode(struct window_pane *);
void window_pane_key(struct window_pane *, struct client *,
struct session *, key_code, struct mouse_event *);
int window_pane_visible(struct window_pane *);
u_int window_pane_search(struct window_pane *, const char *);
const char *window_printable_flags(struct winlink *);
struct window_pane *window_pane_find_up(struct window_pane *);

View File

@ -1286,15 +1286,24 @@ window_pane_key(struct window_pane *wp, struct client *c, struct session *s,
return;
if (options_get_number(wp->window->options, "synchronize-panes")) {
TAILQ_FOREACH(wp2, &wp->window->panes, entry) {
if (wp2 == wp || wp2->mode != NULL)
continue;
if (wp2->fd == -1 || wp2->flags & PANE_INPUTOFF)
continue;
input_key(wp2, key, NULL);
if (wp2 != wp &&
wp2->mode == NULL &&
wp2->fd != -1 &&
(~wp2->flags & PANE_INPUTOFF) &&
window_pane_visible(wp2))
input_key(wp2, key, NULL);
}
}
}
int
window_pane_visible(struct window_pane *wp)
{
if (~wp->window->flags & WINDOW_ZOOMED)
return (1);
return (wp == wp->window->active);
}
u_int
window_pane_search(struct window_pane *wp, const char *searchstr)
{