From f7572d4ab10d4f69c3c9097aebc1e2eb13ff798b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Wed, 18 Mar 2020 16:53:12 +0100 Subject: [PATCH] server: purge *all* buffers when a terminal shuts down Previously we only purged the main grid buffers. Now we also purge the search buffers and the CSD buffers. --- server.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server.c b/server.c index dc0b1e47..710e7e9d 100644 --- a/server.c +++ b/server.c @@ -87,8 +87,13 @@ term_shutdown_handler(void *data, int exit_code) { struct client *client = data; - shm_purge(client->server->wayl->shm, - (unsigned long)(uintptr_t)client->term); + struct wl_shm *shm = client->server->wayl->shm; + struct terminal *term = client->term; + + shm_purge(shm, shm_cookie_grid(term)); + shm_purge(shm, shm_cookie_search(term)); + for (enum csd_surface surf = 0; surf < CSD_SURF_COUNT; surf++) + shm_purge(shm, shm_cookie_csd(term, surf)); client_send_exit_code(client, exit_code);