Remove hidden from staging.

This commit is contained in:
Nicholas Marriott
2026-05-22 08:43:55 +01:00
parent cef3019195
commit b1697e966c

View File

@@ -699,8 +699,8 @@ window_zoom(struct window_pane *wp)
if (w->flags & WINDOW_ZOOMED)
return (-1);
if (window_count_panes(w, 1) == 1)
return (-1);
if (window_count_panes(w, 1) == 1)
return (-1);
if (w->active != wp)
window_set_active_pane(w, wp, 1);
@@ -805,40 +805,25 @@ window_add_pane(struct window *w, struct window_pane *other, u_int hlimit,
void
window_lost_pane(struct window *w, struct window_pane *wp)
{
struct window_pane *wpp, *twpp;
log_debug("%s: @%u pane %%%u", __func__, w->id, wp->id);
if (wp == marked_pane.wp)
server_clear_marked();
window_pane_stack_remove(&w->last_panes, wp);
if (wp != w->active)
return;
/* Try to find a good fit. */
wpp = TAILQ_FIRST(&w->last_panes);
if (wpp == NULL || wpp->flags & PANE_HIDDEN) {
wpp = TAILQ_PREV(wp, window_panes, entry);
if (wpp == NULL || wpp->flags & PANE_HIDDEN)
wpp = TAILQ_NEXT(wp, entry);
}
/* Try to find any fit. */
if (wpp == NULL || (wpp->flags & PANE_HIDDEN)) {
TAILQ_FOREACH_SAFE(wpp, &w->panes, entry, twpp) {
if (wpp != wp && (~wpp->flags & PANE_HIDDEN))
break;
if (wp == w->active) {
w->active = TAILQ_FIRST(&w->last_panes);
if (w->active == NULL) {
w->active = TAILQ_PREV(wp, window_panes, entry);
if (w->active == NULL)
w->active = TAILQ_NEXT(wp, entry);
}
if (w->active != NULL) {
window_pane_stack_remove(&w->last_panes, w->active);
w->active->flags |= PANE_CHANGED;
notify_window("window-pane-changed", w);
window_update_focus(w);
}
}
if (wpp != NULL && (wpp->flags & PANE_HIDDEN))
wpp = NULL;
w->active = wpp;
if (w->active != NULL) {
window_pane_stack_remove(&w->last_panes, w->active);
w->active->flags |= PANE_CHANGED;
notify_window("window-pane-changed", w);
window_update_focus(w);
}
}