mirror of
https://github.com/labwc/labwc.git
synced 2025-11-02 09:01:47 -05:00
config: remove duplication in libinput-category parsing
Related-to: #1382
This commit is contained in:
parent
aff673bee4
commit
5337eda242
3 changed files with 21 additions and 8 deletions
|
|
@ -7,6 +7,9 @@
|
||||||
#include <wayland-server-core.h>
|
#include <wayland-server-core.h>
|
||||||
|
|
||||||
enum device_type {
|
enum device_type {
|
||||||
|
LAB_LIBINPUT_DEVICE_NONE = 0,
|
||||||
|
|
||||||
|
// FIXME: Rename the entries below with a LAB_LIBINPUT_ prefix
|
||||||
DEFAULT_DEVICE,
|
DEFAULT_DEVICE,
|
||||||
TOUCH_DEVICE,
|
TOUCH_DEVICE,
|
||||||
TOUCHPAD_DEVICE,
|
TOUCHPAD_DEVICE,
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,10 @@ libinput_category_init(struct libinput_category *l)
|
||||||
enum device_type
|
enum device_type
|
||||||
get_device_type(const char *s)
|
get_device_type(const char *s)
|
||||||
{
|
{
|
||||||
if (!s) {
|
if (!s || !*s) {
|
||||||
|
return LAB_LIBINPUT_DEVICE_NONE;
|
||||||
|
}
|
||||||
|
if (!strcasecmp(s, "default")) {
|
||||||
return DEFAULT_DEVICE;
|
return DEFAULT_DEVICE;
|
||||||
}
|
}
|
||||||
if (!strcasecmp(s, "touch")) {
|
if (!strcasecmp(s, "touch")) {
|
||||||
|
|
@ -38,7 +41,7 @@ get_device_type(const char *s)
|
||||||
if (!strcasecmp(s, "non-touch")) {
|
if (!strcasecmp(s, "non-touch")) {
|
||||||
return NON_TOUCH_DEVICE;
|
return NON_TOUCH_DEVICE;
|
||||||
}
|
}
|
||||||
return DEFAULT_DEVICE;
|
return LAB_LIBINPUT_DEVICE_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct libinput_category *
|
struct libinput_category *
|
||||||
|
|
|
||||||
|
|
@ -460,12 +460,19 @@ fill_libinput_category(char *nodename, char *content)
|
||||||
string_truncate_at_pattern(nodename, ".device.libinput");
|
string_truncate_at_pattern(nodename, ".device.libinput");
|
||||||
|
|
||||||
if (!strcmp(nodename, "category")) {
|
if (!strcmp(nodename, "category")) {
|
||||||
if (!strcmp(content, "touch")
|
/*
|
||||||
|| !strcmp(content, "touchpad")
|
* First we try to get a type based on a number of pre-defined
|
||||||
|| !strcmp(content, "non-touch")
|
* terms, for example: 'default', 'touch', 'touchpad' and
|
||||||
|| !strcmp(content, "default")) {
|
* 'non-touch'
|
||||||
current_libinput_category->type = get_device_type(content);
|
*/
|
||||||
} else {
|
current_libinput_category->type = get_device_type(content);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If we couldn't match against any of those terms, we use the
|
||||||
|
* provided value to define the device name that the settings
|
||||||
|
* should be applicable to.
|
||||||
|
*/
|
||||||
|
if (current_libinput_category->type == LAB_LIBINPUT_DEVICE_NONE) {
|
||||||
current_libinput_category->name = xstrdup(content);
|
current_libinput_category->name = xstrdup(content);
|
||||||
}
|
}
|
||||||
} else if (!strcasecmp(nodename, "naturalScroll")) {
|
} else if (!strcasecmp(nodename, "naturalScroll")) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue