Bugfix: Correctly initialize workspace when moving clients (Thanks tsdh)

This commit is contained in:
Michael Stapelberg 2009-09-12 18:15:32 +02:00
parent cef5778097
commit 4d01a02dba
1 changed files with 6 additions and 12 deletions

View File

@ -577,19 +577,13 @@ static void move_current_window_to_workspace(xcb_connection_t *conn, int workspa
if (to_focus == NULL) if (to_focus == NULL)
to_focus = CIRCLEQ_PREV_OR_NULL(&(container->clients), current_client, clients); to_focus = CIRCLEQ_PREV_OR_NULL(&(container->clients), current_client, clients);
if (t_ws->screen == NULL) { workspace_initialize(t_ws, container->workspace->screen);
LOG("initializing new workspace, setting num to %d\n", workspace-1);
t_ws->screen = container->workspace->screen;
/* Copy the dimensions from the virtual screen */
memcpy(&(t_ws->rect), &(container->workspace->screen->rect), sizeof(Rect));
} else {
/* Check if there is already a fullscreen client on the destination workspace and /* Check if there is already a fullscreen client on the destination workspace and
* stop moving if so. */ * stop moving if so. */
if (current_client->fullscreen && (t_ws->fullscreen_client != NULL)) { if (current_client->fullscreen && (t_ws->fullscreen_client != NULL)) {
LOG("Not moving: Fullscreen client already existing on destination workspace.\n"); LOG("Not moving: Fullscreen client already existing on destination workspace.\n");
return; return;
} }
}
Container *to_container = t_ws->table[t_ws->current_col][t_ws->current_row]; Container *to_container = t_ws->table[t_ws->current_col][t_ws->current_row];