refactor some places to use output_get_content()
This commit is contained in:
parent
a92b9dca73
commit
9719b21243
66
src/ipc.c
66
src/ipc.c
|
@ -288,50 +288,44 @@ IPC_HANDLER(get_workspaces) {
|
|||
|
||||
Con *output;
|
||||
TAILQ_FOREACH(output, &(croot->nodes_head), nodes) {
|
||||
Con *child;
|
||||
TAILQ_FOREACH(child, &(output->nodes_head), nodes) {
|
||||
if (child->type != CT_CON)
|
||||
continue;
|
||||
Con *ws;
|
||||
TAILQ_FOREACH(ws, &(output_get_content(output)->nodes_head), nodes) {
|
||||
assert(ws->type == CT_WORKSPACE);
|
||||
y(map_open);
|
||||
|
||||
Con *ws;
|
||||
TAILQ_FOREACH(ws, &(child->nodes_head), nodes) {
|
||||
assert(ws->type == CT_WORKSPACE);
|
||||
y(map_open);
|
||||
ystr("num");
|
||||
if (ws->num == -1)
|
||||
y(null);
|
||||
else y(integer, ws->num);
|
||||
|
||||
ystr("num");
|
||||
if (ws->num == -1)
|
||||
y(null);
|
||||
else y(integer, ws->num);
|
||||
ystr("name");
|
||||
ystr(ws->name);
|
||||
|
||||
ystr("name");
|
||||
ystr(ws->name);
|
||||
ystr("visible");
|
||||
y(bool, workspace_is_visible(ws));
|
||||
|
||||
ystr("visible");
|
||||
y(bool, workspace_is_visible(ws));
|
||||
ystr("focused");
|
||||
y(bool, ws == focused_ws);
|
||||
|
||||
ystr("focused");
|
||||
y(bool, ws == focused_ws);
|
||||
ystr("rect");
|
||||
y(map_open);
|
||||
ystr("x");
|
||||
y(integer, ws->rect.x);
|
||||
ystr("y");
|
||||
y(integer, ws->rect.y);
|
||||
ystr("width");
|
||||
y(integer, ws->rect.width);
|
||||
ystr("height");
|
||||
y(integer, ws->rect.height);
|
||||
y(map_close);
|
||||
|
||||
ystr("rect");
|
||||
y(map_open);
|
||||
ystr("x");
|
||||
y(integer, ws->rect.x);
|
||||
ystr("y");
|
||||
y(integer, ws->rect.y);
|
||||
ystr("width");
|
||||
y(integer, ws->rect.width);
|
||||
ystr("height");
|
||||
y(integer, ws->rect.height);
|
||||
y(map_close);
|
||||
ystr("output");
|
||||
ystr(output->name);
|
||||
|
||||
ystr("output");
|
||||
ystr(output->name);
|
||||
ystr("urgent");
|
||||
y(bool, ws->urgent);
|
||||
|
||||
ystr("urgent");
|
||||
y(bool, ws->urgent);
|
||||
|
||||
y(map_close);
|
||||
}
|
||||
y(map_close);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,39 +18,26 @@
|
|||
*
|
||||
*/
|
||||
Con *workspace_get(const char *num) {
|
||||
Con *output, *workspace = NULL, *current, *child;
|
||||
Con *output, *workspace = NULL, *child;
|
||||
|
||||
/* TODO: could that look like this in the future?
|
||||
GET_MATCHING_NODE(workspace, croot, strcasecmp(current->name, num) != 0);
|
||||
*/
|
||||
TAILQ_FOREACH(output, &(croot->nodes_head), nodes) {
|
||||
TAILQ_FOREACH(current, &(output->nodes_head), nodes) {
|
||||
if (current->type != CT_CON)
|
||||
TAILQ_FOREACH(output, &(croot->nodes_head), nodes)
|
||||
TAILQ_FOREACH(child, &(output_get_content(output)->nodes_head), nodes) {
|
||||
if (strcasecmp(child->name, num) != 0)
|
||||
continue;
|
||||
|
||||
TAILQ_FOREACH(child, &(current->nodes_head), nodes) {
|
||||
if (strcasecmp(child->name, num) != 0)
|
||||
continue;
|
||||
|
||||
workspace = child;
|
||||
break;
|
||||
}
|
||||
workspace = child;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
LOG("getting ws %s\n", num);
|
||||
if (workspace == NULL) {
|
||||
LOG("need to create this one\n");
|
||||
output = con_get_output(focused);
|
||||
Con *child, *content = NULL;
|
||||
TAILQ_FOREACH(child, &(output->nodes_head), nodes) {
|
||||
if (child->type == CT_CON) {
|
||||
content = child;
|
||||
break;
|
||||
}
|
||||
}
|
||||
assert(content != NULL);
|
||||
LOG("got output %p with child %p\n", output, content);
|
||||
Con *content = output_get_content(output);
|
||||
LOG("got output %p with content %p\n", output, content);
|
||||
/* We need to attach this container after setting its type. con_attach
|
||||
* will handle CT_WORKSPACEs differently */
|
||||
workspace = con_new(NULL);
|
||||
|
|
Loading…
Reference in New Issue