Output *get_first_output(void);
/**
- * Returns the output with the given name if it is active (!) or NULL.
+ * Returns the output with the given name or NULL.
+ * If require_active is true, only active outputs are considered.
*
*/
-Output *get_output_by_name(const char *name);
+Output *get_output_by_name(const char *name, const bool require_active);
/**
* Returns the active (!) output which contains the coordinates x, y or NULL
return get_output_next_wrap(D_DOWN, current_output);
}
- return get_output_by_name(output_str);
+ return get_output_by_name(output_str, true);
}
Output *get_output_for_con(Con *con) {
return NULL;
}
- Output *output = get_output_by_name(output_con->name);
+ Output *output = get_output_by_name(output_con->name, true);
if (output == NULL) {
ELOG("Could not get output from name \"%s\".\n", output_con->name);
return NULL;
}
/*
- * Returns the output with the given name if it is active (!) or NULL.
+ * Returns the output with the given name or NULL.
+ * If require_active is true, only active outputs are considered.
*
*/
-Output *get_output_by_name(const char *name) {
+Output *get_output_by_name(const char *name, const bool require_active) {
Output *output;
bool get_primary = (strcasecmp("primary", name) == 0);
TAILQ_FOREACH(output, &outputs, outputs) {
if ((output->primary && get_primary) ||
- (output->active && strcasecmp(output->name, name) == 0)) {
+ ((!require_active || output->active) && strcasecmp(output->name, name) == 0)) {
return output;
}
}
if (visible && previous == NULL) {
LOG("There is no workspace left on \"%s\", re-initializing\n",
workspace_out->name);
- init_ws_for_output(get_output_by_name(workspace_out->name),
+ init_ws_for_output(get_output_by_name(workspace_out->name, true),
output_get_content(workspace_out));
DLOG("Done re-initializing, continuing with \"%s\"\n", output->name);
}
xcb_get_atom_name_name(atom_reply));
free(atom_reply);
- Output *new = get_output_by_name(name);
+ Output *new = get_output_by_name(name, false);
if (new == NULL) {
new = scalloc(1, sizeof(Output));
new->name = sstrdup(name);