From: Orestis Floros Date: Sun, 16 Dec 2018 01:27:09 +0000 (+0200) Subject: Fix: render_con shows floating containers on wrong workspace X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=refs%2Fpull%2F3568%2Fhead;p=i3%2Fi3 Fix: render_con shows floating containers on wrong workspace After 204eefc. Alternative fix: diff --git a/src/floating.c b/src/floating.c index f5c61782..6dd79668 100644 --- a/src/floating.c +++ b/src/floating.c @@ -954,7 +954,7 @@ bool floating_reposition(Con *con, Rect newrect) { con->scratchpad_state = SCRATCHPAD_CHANGED; /* Workspace change will already result in a tree_render. */ - if (!reassigned) { + if (!reassigned && workspace_is_visible(con_get_workspace(con))) { render_con(con); x_push_node(con); } but I don't think that the extra complexity is worth it. Change in handlers.c because of d2d6d6e0 where the bug also appears. Fixes #3567 --- diff --git a/src/floating.c b/src/floating.c index f5c61782..79f1d3d3 100644 --- a/src/floating.c +++ b/src/floating.c @@ -955,8 +955,7 @@ bool floating_reposition(Con *con, Rect newrect) { /* Workspace change will already result in a tree_render. */ if (!reassigned) { - render_con(con); - x_push_node(con); + tree_render(); } return true; } diff --git a/src/handlers.c b/src/handlers.c index 5a79ffe1..ae42b82e 100644 --- a/src/handlers.c +++ b/src/handlers.c @@ -981,8 +981,7 @@ static bool handle_normal_hints(void *data, xcb_connection_t *conn, uint8_t stat Con *floating = con_inside_floating(con); if (floating) { floating_check_size(con, false); - render_con(con); - x_push_changes(croot); + tree_render(); } }