Bugfix: Use the appropriate number when assigning numbered workspaces in randr.c
This commit is contained in:
parent
c883e7050a
commit
d0741975f1
41
src/randr.c
41
src/randr.c
|
@ -392,27 +392,40 @@ void init_ws_for_output(Output *output, Con *content) {
|
|||
GREP_FIRST(current, output_get_content(out), !strcasecmp(child->name, ws->name));
|
||||
|
||||
exists = (current != NULL);
|
||||
if (!exists)
|
||||
if (!exists) {
|
||||
/* Set ->num to the number of the workspace, if the name actually
|
||||
* is a number or starts with a number */
|
||||
long parsed_num = strtol(ws->name, NULL, 10);
|
||||
if (parsed_num == LONG_MIN ||
|
||||
parsed_num == LONG_MAX ||
|
||||
parsed_num <= 0)
|
||||
ws->num = -1;
|
||||
else ws->num = parsed_num;
|
||||
LOG("Used number %d for workspace with name %s\n", ws->num, ws->name);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* get the next unused workspace number */
|
||||
DLOG("Getting next unused workspace\n");
|
||||
int c = 0;
|
||||
while (exists) {
|
||||
c++;
|
||||
if (exists) {
|
||||
/* get the next unused workspace number */
|
||||
DLOG("Getting next unused workspace by number\n");
|
||||
int c = 0;
|
||||
while (exists) {
|
||||
c++;
|
||||
|
||||
FREE(ws->name);
|
||||
asprintf(&(ws->name), "%d", c);
|
||||
FREE(ws->name);
|
||||
asprintf(&(ws->name), "%d", c);
|
||||
|
||||
current = NULL;
|
||||
TAILQ_FOREACH(out, &(croot->nodes_head), nodes)
|
||||
GREP_FIRST(current, output_get_content(out), !strcasecmp(child->name, ws->name));
|
||||
exists = (current != NULL);
|
||||
current = NULL;
|
||||
TAILQ_FOREACH(out, &(croot->nodes_head), nodes)
|
||||
GREP_FIRST(current, output_get_content(out), !strcasecmp(child->name, ws->name));
|
||||
exists = (current != NULL);
|
||||
|
||||
DLOG("result for ws %s / %d: exists = %d\n", ws->name, c, exists);
|
||||
DLOG("result for ws %s / %d: exists = %d\n", ws->name, c, exists);
|
||||
}
|
||||
ws->num = c;
|
||||
}
|
||||
ws->num = c;
|
||||
con_attach(ws, content, false);
|
||||
|
||||
asprintf(&name, "[i3 con] workspace %s", ws->name);
|
||||
|
|
Loading…
Reference in New Issue