This commit is contained in:
Tony Crisci 2017-12-20 06:12:08 -05:00
parent a4c1270ef0
commit 63f7fb9517
3 changed files with 9 additions and 4 deletions

View file

@ -14,6 +14,7 @@ struct seat_config *new_seat_config(const char* name) {
sway_log(L_DEBUG, "new_seat_config(%s)", name); sway_log(L_DEBUG, "new_seat_config(%s)", name);
seat->name = strdup(name); seat->name = strdup(name);
if (!sway_assert(seat->name, "could not allocate name for seat")) { if (!sway_assert(seat->name, "could not allocate name for seat")) {
free(seat);
return NULL; return NULL;
} }
@ -21,6 +22,8 @@ struct seat_config *new_seat_config(const char* name) {
seat->attachments = create_list(); seat->attachments = create_list();
if (!sway_assert(seat->attachments, if (!sway_assert(seat->attachments,
"could not allocate seat attachments list")) { "could not allocate seat attachments list")) {
free(seat->name);
free(seat);
return NULL; return NULL;
} }

View file

@ -119,10 +119,11 @@ static void input_add_notify(struct wl_listener *listener, void *data) {
bool added = false; bool added = false;
wl_list_for_each(seat, &input->seats, link) { wl_list_for_each(seat, &input->seats, link) {
if (seat->config && bool has_attachment = seat->config &&
(seat_config_get_attachment(seat->config, (seat_config_get_attachment(seat->config, input_device->identifier) ||
input_device->identifier) || seat_config_get_attachment(seat->config, "*"));
seat_config_get_attachment(seat->config, "*"))) {
if (has_attachment) {
sway_seat_add_device(seat, input_device); sway_seat_add_device(seat, input_device);
added = true; added = true;
} }

View file

@ -30,6 +30,7 @@ struct sway_seat *sway_seat_create(struct sway_input_manager *input,
seat->wlr_seat = wlr_seat_create(input->server->wl_display, seat_name); seat->wlr_seat = wlr_seat_create(input->server->wl_display, seat_name);
if (!sway_assert(seat->wlr_seat, "could not allocate seat")) { if (!sway_assert(seat->wlr_seat, "could not allocate seat")) {
free(seat);
return NULL; return NULL;
} }