Add a helper to free the list of pending resizes.

This commit is contained in:
nicm
2026-06-11 14:19:59 +00:00
parent 3ea458b9dc
commit fa6d33f742
4 changed files with 20 additions and 23 deletions

View File

@@ -1112,9 +1112,6 @@ window_pane_wait_finish(struct window_pane *wp)
static void
window_pane_destroy(struct window_pane *wp)
{
struct window_pane_resize *r;
struct window_pane_resize *r1;
window_pane_wait_finish(wp);
window_pane_reset_mode_all(wp);
@@ -1140,10 +1137,7 @@ window_pane_destroy(struct window_pane *wp)
event_del(&wp->resize_timer);
if (event_initialized(&wp->sync_timer))
event_del(&wp->sync_timer);
TAILQ_FOREACH_SAFE(r, &wp->resize_queue, entry, r1) {
TAILQ_REMOVE(&wp->resize_queue, r, entry);
free(r);
}
window_pane_clear_resizes(wp, NULL);
RB_REMOVE(window_pane_tree, &all_window_panes, wp);
@@ -1211,6 +1205,19 @@ window_pane_set_event(struct window_pane *wp)
bufferevent_enable(wp->event, EV_READ|EV_WRITE);
}
void
window_pane_clear_resizes(struct window_pane *wp, struct window_pane_resize *except)
{
struct window_pane_resize *r, *r1;
TAILQ_FOREACH_SAFE(r, &wp->resize_queue, entry, r1) {
if (r == except)
continue;
TAILQ_REMOVE(&wp->resize_queue, r, entry);
free(r);
}
}
void
window_pane_resize(struct window_pane *wp, u_int sx, u_int sy)
{