From: Fernando Tarlá Cardoso Lemos Date: Sun, 29 Jan 2012 17:53:30 +0000 (-0200) Subject: Fix coords of floating containers when the output is disabled. X-Git-Tag: 4.2~99^2^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=55525015cc6b1a2e41fdaf85e9f03301dd7bd63b;p=i3%2Fi3 Fix coords of floating containers when the output is disabled. This prevents floating containers from "disappearing" when their associated output is disabled. Thanks Michael for the advice. --- diff --git a/src/randr.c b/src/randr.c index bb6b4e90..e65fdbd6 100644 --- a/src/randr.c +++ b/src/randr.c @@ -754,7 +754,8 @@ void randr_query_outputs() { DLOG("next = %p\n", next); } - /* 2: iterate through workspaces and re-assign them */ + /* 2: iterate through workspaces and re-assign them, fixing the coordinates + * of floating containers as we go */ Con *current; Con *old_content = output_get_content(output->con); while (!TAILQ_EMPTY(&(old_content->nodes_head))) { @@ -763,6 +764,10 @@ void randr_query_outputs() { con_detach(current); DLOG("Re-attaching current = %p / %s\n", current, current->name); con_attach(current, first_content, false); + DLOG("Fixing the coordinates of floating containers\n"); + Con *floating_con; + TAILQ_FOREACH(floating_con, &(current->floating_head), floating_windows) + floating_fix_coordinates(floating_con, &(old_content->rect), &(first_content->rect)); DLOG("Done, next\n"); } DLOG("re-attached all workspaces\n");