From 3ed4ca5e889e464306ade66a4808de81f4baa4a6 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Sun, 13 Oct 2019 13:21:37 +0300 Subject: [PATCH] docs: update --- sowm.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/sowm.c b/sowm.c index f426d36..f9c22c6 100644 --- a/sowm.c +++ b/sowm.c @@ -25,7 +25,7 @@ struct key { typedef struct client client; struct client{ - client *next; + client *next, *prev; Window win; XWindowAttributes a; int f; @@ -177,15 +177,26 @@ void win_del(Window w) { for WIN { if (c->win != w) continue; - if (!c->next && c == list) { + if (!c->prev && !c->next) { free(list); list = 0; - - } else if (c->next) { - list = c->next; - free(c); + ws_save(desk); + return; } + if (!c->prev) { + list = c->next; + c->next->prev = 0; + + } else if (!c->next) { + c->prev->next = 0; + + } else { + c->prev->next = c->next; + c->next->prev = c->prev; + } + + free(c); ws_save(desk); return; }