mirror of
https://github.com/tmux/tmux.git
synced 2026-05-30 22:26:18 +00:00
Remove hidden from staging.
This commit is contained in:
43
window.c
43
window.c
@@ -699,8 +699,8 @@ window_zoom(struct window_pane *wp)
|
|||||||
|
|
||||||
if (w->flags & WINDOW_ZOOMED)
|
if (w->flags & WINDOW_ZOOMED)
|
||||||
return (-1);
|
return (-1);
|
||||||
if (window_count_panes(w, 1) == 1)
|
if (window_count_panes(w, 1) == 1)
|
||||||
return (-1);
|
return (-1);
|
||||||
|
|
||||||
if (w->active != wp)
|
if (w->active != wp)
|
||||||
window_set_active_pane(w, wp, 1);
|
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
|
void
|
||||||
window_lost_pane(struct window *w, struct window_pane *wp)
|
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);
|
log_debug("%s: @%u pane %%%u", __func__, w->id, wp->id);
|
||||||
|
|
||||||
if (wp == marked_pane.wp)
|
if (wp == marked_pane.wp)
|
||||||
server_clear_marked();
|
server_clear_marked();
|
||||||
|
|
||||||
window_pane_stack_remove(&w->last_panes, wp);
|
window_pane_stack_remove(&w->last_panes, wp);
|
||||||
if (wp != w->active)
|
if (wp == w->active) {
|
||||||
return;
|
w->active = TAILQ_FIRST(&w->last_panes);
|
||||||
|
if (w->active == NULL) {
|
||||||
/* Try to find a good fit. */
|
w->active = TAILQ_PREV(wp, window_panes, entry);
|
||||||
wpp = TAILQ_FIRST(&w->last_panes);
|
if (w->active == NULL)
|
||||||
if (wpp == NULL || wpp->flags & PANE_HIDDEN) {
|
w->active = TAILQ_NEXT(wp, entry);
|
||||||
wpp = TAILQ_PREV(wp, window_panes, entry);
|
}
|
||||||
if (wpp == NULL || wpp->flags & PANE_HIDDEN)
|
if (w->active != NULL) {
|
||||||
wpp = TAILQ_NEXT(wp, entry);
|
window_pane_stack_remove(&w->last_panes, w->active);
|
||||||
}
|
w->active->flags |= PANE_CHANGED;
|
||||||
/* Try to find any fit. */
|
notify_window("window-pane-changed", w);
|
||||||
if (wpp == NULL || (wpp->flags & PANE_HIDDEN)) {
|
window_update_focus(w);
|
||||||
TAILQ_FOREACH_SAFE(wpp, &w->panes, entry, twpp) {
|
|
||||||
if (wpp != wp && (~wpp->flags & PANE_HIDDEN))
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user