From 3d260f8e50e369aea6013cc0b1566299dda91fc1 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Sun, 15 Mar 2009 21:13:15 +0100 Subject: [PATCH] Bugfix: re-decorate old client when switching screens --- src/commands.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/commands.c b/src/commands.c index 3f4fcdfb..3a27a117 100644 --- a/src/commands.c +++ b/src/commands.c @@ -474,6 +474,10 @@ void show_workspace(xcb_connection_t *conn, int workspace) { if (c_ws->screen != t_ws->screen) { /* We need to switch to the other screen first */ LOG("moving over to other screen.\n"); + + /* Store the old client */ + Client *old_client = CUR_CELL->currently_focused; + c_ws = &(workspaces[t_ws->screen->current_workspace]); current_col = c_ws->current_col; current_row = c_ws->current_row; @@ -484,6 +488,11 @@ void show_workspace(xcb_connection_t *conn, int workspace) { xcb_warp_pointer(conn, XCB_NONE, root, 0, 0, 0, 0, dims->x + (dims->width / 2), dims->y + (dims->height / 2)); } + + /* Re-decorate the old client, it’s not focused anymore */ + if ((old_client != NULL) && !old_client->dock) + redecorate_window(conn, old_client); + else xcb_flush(conn); } /* Check if we need to change something or if we’re already there */