X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=client.c;h=c20c517e32ab9fc8275e6307fcd54ece44762df0;hb=cd8d8e120857329800e93e22572e35560d1b0e80;hp=4afa70526c6391f356859984899f9fb0c7a63199;hpb=04eb016e782743ec88f150ec6f5389703bed3ce2;p=dwm.git diff --git a/client.c b/client.c index 4afa705..c20c517 100644 --- a/client.c +++ b/client.c @@ -476,7 +476,7 @@ unmanage(Client *c) void zoom(Arg *arg) { - Client *c; + Client *c, **l; if(!sel) return; @@ -486,6 +486,19 @@ zoom(Arg *arg) sel = c; } - pop(sel); + /* pop */ + for(l = &clients; *l && *l != sel; l = &(*l)->next); + if(sel->prev) + sel->prev->next = sel->next; + if(sel->next) + sel->next->prev = sel->prev; + *l = sel->next; + + sel->prev = NULL; + if(clients) + clients->prev = sel; + sel->next = clients; + clients = sel; + arrange(NULL); focus(sel); }