Bugfix: Store dock clients per screen, not per workspace.

This fixes ticket #12
This commit is contained in:
Michael Stapelberg
2009-04-11 14:29:15 +02:00
parent 8cc1fcf536
commit bcbe800720
6 changed files with 12 additions and 8 deletions

View File

@ -182,6 +182,8 @@ static void initialize_screen(xcb_connection_t *conn, i3Screen *screen, Workspac
screen->bargc = xcb_generate_id(conn);
xcb_create_gc(conn, screen->bargc, screen->bar, 0, 0);
SLIST_INIT(&(screen->dock_clients));
/* Copy dimensions */
memcpy(&(workspace->rect), &(screen->rect), sizeof(Rect));
LOG("that is virtual screen at %d x %d with %d x %d\n",
@ -265,6 +267,9 @@ void xinerama_requery_screens(xcb_connection_t *conn) {
screen->bar = workspaces[c].screen->bar;
screen->bargc = workspaces[c].screen->bargc;
/* Copy the list head for the dock clients */
screen->dock_clients = workspaces[c].screen->dock_clients;
/* Update the dimensions */
memcpy(&(workspaces[c].rect), &(screen->rect), sizeof(Rect));
workspaces[c].screen = screen;