diff --git a/src/settings.c b/src/settings.c index 3591c4d7dbc4aa70cb8a7cfe7035f33398310fc4..7a10be164d4e33abe167a50d5c30f66415b301a3 100644 --- a/src/settings.c +++ b/src/settings.c @@ -685,9 +685,14 @@ gboolean loadSettings(void) if(params.workspace_count < 0) { - params.workspace_count = abs(TOINT(getValue("workspace_count", rc))); - setGnomeHint(dpy, root, win_workspace_count, params.workspace_count); - setNetHint(dpy, root, net_number_of_desktops, params.workspace_count); + gint workspace_count; + workspace_count = abs(TOINT(getValue("workspace_count", rc))); + if (workspace_count < 0) + { + workspace_count = 0; + } + g_message("workspace count not set, using rc value: %i", workspace_count); + workspaceSetCount(workspace_count); } params.wrap_workspaces = !g_ascii_strcasecmp("true", getValue("wrap_workspaces", rc)); @@ -783,16 +788,6 @@ gboolean initSettings(void) initPixmap(¶ms.title[i][ACTIVE]); initPixmap(¶ms.title[i][INACTIVE]); } - if(getNetHint(dpy, root, net_number_of_desktops, &val)) - { - params.workspace_count = (int) val; - setGnomeHint(dpy, root, win_workspace_count, params.workspace_count); - } - else if(getGnomeHint(dpy, root, win_workspace_count, &val)) - { - params.workspace_count = (int) val; - setNetHint(dpy, root, net_number_of_desktops, params.workspace_count); - } if(!mcs_client_check_manager(dpy, screen, "xfce-mcs-manager")) { g_warning("MCS manager not running"); @@ -809,6 +804,15 @@ gboolean initSettings(void) mcs_initted = TRUE; + if(getNetHint(dpy, root, net_number_of_desktops, &val)) + { + workspaceSetCount(val); + } + else if(getGnomeHint(dpy, root, win_workspace_count, &val)) + { + workspaceSetCount(val); + } + if(!loadSettings()) { return FALSE; diff --git a/src/workspaces.c b/src/workspaces.c index 2d6ed9c15eb0ec2b1773543bc8eae5df3b53a001..03ee11f0a43801067a54b16223d2cab1e4dc2c9f 100644 --- a/src/workspaces.c +++ b/src/workspaces.c @@ -129,7 +129,6 @@ void workspaceSetCount(int count) { Client *c; int i; - unsigned long data[1]; DBG("entering workspaceSetCount\n"); @@ -143,8 +142,7 @@ void workspaceSetCount(int count) } setGnomeHint(dpy, root, win_workspace_count, count); - data[0] = count; - XChangeProperty(dpy, root, net_number_of_desktops, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)data, 1); + setNetHint(dpy, root, net_number_of_desktops, count); params.workspace_count = count; for(c = clients, i = 0; i < client_count; c = c->next, i++)