mirror of
https://github.com/NickHu/sway
synced 2024-12-25 21:58:16 +01:00
Use all_output_by_name_or_id() in merge_id_on_name()
No need to iterate over the outputs manually.
This commit is contained in:
parent
8d95638df6
commit
04904ab9a5
1 changed files with 14 additions and 20 deletions
|
@ -153,29 +153,23 @@ static void merge_wildcard_on_all(struct output_config *wildcard) {
|
|||
}
|
||||
|
||||
static void merge_id_on_name(struct output_config *oc) {
|
||||
char *id_on_name = NULL;
|
||||
char id[128];
|
||||
char *name = NULL;
|
||||
struct sway_output *output;
|
||||
wl_list_for_each(output, &root->all_outputs, link) {
|
||||
name = output->wlr_output->name;
|
||||
output_get_identifier(id, sizeof(id), output);
|
||||
if (strcmp(name, oc->name) == 0 || strcmp(id, oc->name) == 0) {
|
||||
size_t length = snprintf(NULL, 0, "%s on %s", id, name) + 1;
|
||||
id_on_name = malloc(length);
|
||||
if (!id_on_name) {
|
||||
sway_log(SWAY_ERROR, "Failed to allocate id on name string");
|
||||
return;
|
||||
}
|
||||
snprintf(id_on_name, length, "%s on %s", id, name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!id_on_name) {
|
||||
struct sway_output *output = all_output_by_name_or_id(oc->name);
|
||||
if (output == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
const char *name = output->wlr_output->name;
|
||||
char id[128];
|
||||
output_get_identifier(id, sizeof(id), output);
|
||||
|
||||
size_t size = snprintf(NULL, 0, "%s on %s", id, name) + 1;
|
||||
char *id_on_name = malloc(size);
|
||||
if (!id_on_name) {
|
||||
sway_log(SWAY_ERROR, "Failed to allocate id on name string");
|
||||
return;
|
||||
}
|
||||
snprintf(id_on_name, size, "%s on %s", id, name);
|
||||
|
||||
int i = list_seq_find(config->output_configs, output_name_cmp, id_on_name);
|
||||
if (i >= 0) {
|
||||
sway_log(SWAY_DEBUG, "Merging on top of existing id on name config");
|
||||
|
|
Loading…
Reference in a new issue