Merge branch 'fix-assign-render'

This commit is contained in:
Michael Stapelberg 2012-09-24 23:59:30 +02:00
commit 8eb39477bf

View File

@ -381,6 +381,22 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
/* Check if any assignments match */ /* Check if any assignments match */
run_assignments(cwindow); run_assignments(cwindow);
/* If this window was put onto an invisible workspace (via assignments), we
* render this workspace. It wouldnt be rendered in our normal code path
* because only the visible workspaces get rendered.
*
* By rendering the workspace, we assign proper coordinates (read: not
* width=0, height=0) to the window, which is important for windows who
* actually use them to position their GUI elements, e.g. rhythmbox. */
if (ws && !workspace_is_visible(ws)) {
/* This is a bit hackish: we need to copy the content containers rect
* to the workspace, because calling render_con() on the content
* container would also take the shortcut and not render the invisible
* workspace at all. However, just calling render_con() on the
* workspace isnt enough either it needs the rect. */
ws->rect = ws->parent->rect;
render_con(ws, true);
}
tree_render(); tree_render();
geom_out: geom_out: