Store position and size of windows before going fullscreen. This is more efficient than arrange() and also works with floating windows
All the clients keep their original position because arrange() isn't used after quitting fullscreen
JJXQTKU5WR74D7XW3JTN4Y3JSYDQTZ54GTD4F5XHT5RR2UWR72AAC
if (c->surface.xdg->toplevel->current.fullscreen) { /* fullscreen off */
resize(c, c->prevx, c->prevy, c->prevwidth, c->prevheight, 0);
} else { /* fullscreen on */
c->prevx = c->geom.x;
c->prevy = c->geom.y;
c->prevheight = c->geom.height;
c->prevwidth = c->geom.width;
resize(c, c->mon->w.x, c->mon->w.y, c->mon->w.width, c->mon->w.height, 0);
}