config: use wl_list_append() for libinput categories

...to make it more intuitive.

Also, do not check for existance of name when type==DEFAULT because name
will only exist when type==NONE.
This commit is contained in:
Johan Malm 2024-01-01 17:18:28 +00:00 committed by Johan Malm
parent a63f858f58
commit 94cec51d9f
2 changed files with 10 additions and 8 deletions

View file

@ -3,6 +3,7 @@
#include <strings.h> #include <strings.h>
#include "common/mem.h" #include "common/mem.h"
#include "common/list.h"
#include "config/libinput.h" #include "config/libinput.h"
#include "config/rcxml.h" #include "config/rcxml.h"
@ -49,20 +50,21 @@ libinput_category_create(void)
{ {
struct libinput_category *l = znew(*l); struct libinput_category *l = znew(*l);
libinput_category_init(l); libinput_category_init(l);
wl_list_insert(&rc.libinput_categories, &l->link); wl_list_append(&rc.libinput_categories, &l->link);
return l; return l;
} }
/* /* After rcxml_read(), a default category always exists. */
* The default category is the first one with type == DEFAULT_DEVICE and
* no name. After rcxml_read(), a default category always exists.
*/
struct libinput_category * struct libinput_category *
libinput_category_get_default(void) libinput_category_get_default(void)
{ {
struct libinput_category *l; struct libinput_category *l;
wl_list_for_each(l, &rc.libinput_categories, link) { /*
if (l->type == DEFAULT_DEVICE && !l->name) { * Iterate in reverse to get the last one added in case multiple
* 'default' profiles were created.
*/
wl_list_for_each_reverse(l, &rc.libinput_categories, link) {
if (l->type == DEFAULT_DEVICE) {
return l; return l;
} }
} }

View file

@ -79,7 +79,7 @@ configure_libinput(struct wlr_input_device *wlr_input_device)
device_type_from_wlr_device(wlr_input_device); device_type_from_wlr_device(wlr_input_device);
struct libinput_category *device_category, *dc = NULL; struct libinput_category *device_category, *dc = NULL;
wl_list_for_each(device_category, &rc.libinput_categories, link) { wl_list_for_each_reverse(device_category, &rc.libinput_categories, link) {
if (device_category->name) { if (device_category->name) {
if (!strcasecmp(wlr_input_device->name, if (!strcasecmp(wlr_input_device->name,
device_category->name)) { device_category->name)) {