mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -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>
 | 
			
		||||
 | 
			
		||||
enum device_type {
 | 
			
		||||
	LAB_LIBINPUT_DEVICE_NONE = 0,
 | 
			
		||||
 | 
			
		||||
	// FIXME: Rename the entries below with a LAB_LIBINPUT_ prefix
 | 
			
		||||
	DEFAULT_DEVICE,
 | 
			
		||||
	TOUCH_DEVICE,
 | 
			
		||||
	TOUCHPAD_DEVICE,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,7 +26,10 @@ libinput_category_init(struct libinput_category *l)
 | 
			
		|||
enum device_type
 | 
			
		||||
get_device_type(const char *s)
 | 
			
		||||
{
 | 
			
		||||
	if (!s) {
 | 
			
		||||
	if (!s || !*s) {
 | 
			
		||||
		return LAB_LIBINPUT_DEVICE_NONE;
 | 
			
		||||
	}
 | 
			
		||||
	if (!strcasecmp(s, "default")) {
 | 
			
		||||
		return DEFAULT_DEVICE;
 | 
			
		||||
	}
 | 
			
		||||
	if (!strcasecmp(s, "touch")) {
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +41,7 @@ get_device_type(const char *s)
 | 
			
		|||
	if (!strcasecmp(s, "non-touch")) {
 | 
			
		||||
		return NON_TOUCH_DEVICE;
 | 
			
		||||
	}
 | 
			
		||||
	return DEFAULT_DEVICE;
 | 
			
		||||
	return LAB_LIBINPUT_DEVICE_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct libinput_category *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -460,12 +460,19 @@ fill_libinput_category(char *nodename, char *content)
 | 
			
		|||
	string_truncate_at_pattern(nodename, ".device.libinput");
 | 
			
		||||
 | 
			
		||||
	if (!strcmp(nodename, "category")) {
 | 
			
		||||
		if (!strcmp(content, "touch")
 | 
			
		||||
				|| !strcmp(content, "touchpad")
 | 
			
		||||
				|| !strcmp(content, "non-touch")
 | 
			
		||||
				|| !strcmp(content, "default")) {
 | 
			
		||||
		/*
 | 
			
		||||
		 * First we try to get a type based on a number of pre-defined
 | 
			
		||||
		 * terms, for example: 'default', 'touch', 'touchpad' and
 | 
			
		||||
		 * 'non-touch'
 | 
			
		||||
		 */
 | 
			
		||||
		current_libinput_category->type = get_device_type(content);
 | 
			
		||||
		} else {
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * 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);
 | 
			
		||||
		}
 | 
			
		||||
	} else if (!strcasecmp(nodename, "naturalScroll")) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue