diff --git a/src/client.c b/src/client.c index 119e16f3f58403fe845adaac8fde916a95942c6c..cec9818b614f6feb8fdaf4759c79423273270da9 100644 --- a/src/client.c +++ b/src/client.c @@ -2019,7 +2019,6 @@ clientSetWorkspaceSingle (Client * c, int ws) TRACE ("entering clientSetWorkspaceSingle"); - screen_info = c->screen_info; display_info = screen_info->display_info; diff --git a/src/events.c b/src/events.c index d158b5e9fae2339b172cfd8978bc330b59d6aa32..840157ccb4c33c78eb12297f3454d86a07422f9d 100644 --- a/src/events.c +++ b/src/events.c @@ -1947,8 +1947,8 @@ handleClientMessage (DisplayInfo *display_info, XClientMessageEvent * ev) if (((ev->message_type == display_info->atoms[WIN_WORKSPACE]) || (ev->message_type == display_info->atoms[NET_CURRENT_DESKTOP])) && (ev->format == 32)) { - TRACE ("root has received a win_workspace or a net_current_desktop event"); - if (ev->data.l[0] != screen_info->current_ws) + TRACE ("root has received a win_workspace or a net_current_desktop event %i", ev->data.l[0]); + if ((ev->data.l[0] >= 0) && (ev->data.l[0] < screen_info->workspace_count) && (ev->data.l[0] != screen_info->current_ws)) { workspaceSwitch (screen_info, ev->data.l[0], NULL); }