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

@@ -1586,7 +1586,7 @@ server_client_resize_timer(__unused int fd, __unused short events, void *data)
static void
server_client_check_pane_resize(struct window_pane *wp)
{
struct window_pane_resize *r, *r1, *first, *last;
struct window_pane_resize *r, *first, *last;
struct timeval tv = { .tv_usec = 250000 };
if (TAILQ_EMPTY(&wp->resize_queue))
@@ -1626,10 +1626,7 @@ server_client_check_pane_resize(struct window_pane *wp)
} else if (last->sx != first->osx || last->sy != first->osy) {
/* Multiple resizes ending up with a different size. */
window_pane_send_resize(wp, last->sx, last->sy);
TAILQ_FOREACH_SAFE(r, &wp->resize_queue, entry, r1) {
TAILQ_REMOVE(&wp->resize_queue, r, entry);
free(r);
}
window_pane_clear_resizes(wp, NULL);
} else {
/*
* Multiple resizes ending up with the same size. There will
@@ -1640,12 +1637,7 @@ server_client_check_pane_resize(struct window_pane *wp)
*/
r = TAILQ_PREV(last, window_pane_resizes, entry);
window_pane_send_resize(wp, r->sx, r->sy);
TAILQ_FOREACH_SAFE(r, &wp->resize_queue, entry, r1) {
if (r == last)
break;
TAILQ_REMOVE(&wp->resize_queue, r, entry);
free(r);
}
window_pane_clear_resizes(wp, last);
tv.tv_usec = 10000;
}
evtimer_add(&wp->resize_timer, &tv);