mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	config: add option for forcing mouse emulation
Default is off. Also allow switching with reconfigure.
This commit is contained in:
		
							parent
							
								
									be72c4bde3
								
							
						
					
					
						commit
						6d05bed883
					
				
					 3 changed files with 8 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -94,6 +94,7 @@ struct rcxml {
 | 
			
		|||
 | 
			
		||||
	/* graphics tablet */
 | 
			
		||||
	struct tablet_config {
 | 
			
		||||
		bool force_mouse_emulation;
 | 
			
		||||
		char *output_name;
 | 
			
		||||
		struct wlr_fbox box;
 | 
			
		||||
		enum rotation rotation;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1020,6 +1020,8 @@ entry(xmlNode *node, char *nodename, char *content)
 | 
			
		|||
		} else {
 | 
			
		||||
			wlr_log(WLR_ERROR, "Invalid value for <resize popupShow />");
 | 
			
		||||
		}
 | 
			
		||||
	} else if (!strcasecmp(nodename, "mouseEmulation.tablet")) {
 | 
			
		||||
		set_bool(content, &rc.tablet.force_mouse_emulation);
 | 
			
		||||
	} else if (!strcasecmp(nodename, "mapToOutput.tablet")) {
 | 
			
		||||
		rc.tablet.output_name = xstrdup(content);
 | 
			
		||||
	} else if (!strcasecmp(nodename, "rotate.tablet")) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1229,6 +1231,7 @@ rcxml_init(void)
 | 
			
		|||
	rc.doubleclick_time = 500;
 | 
			
		||||
	rc.scroll_factor = 1.0;
 | 
			
		||||
 | 
			
		||||
	rc.tablet.force_mouse_emulation = false;
 | 
			
		||||
	rc.tablet.output_name = NULL;
 | 
			
		||||
	rc.tablet.rotation = 0;
 | 
			
		||||
	rc.tablet.box = (struct wlr_fbox){0};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -91,7 +91,8 @@ tablet_get_coords(struct drawing_tablet *tablet, double *x, double *y)
 | 
			
		|||
		rc.tablet.box, x, y);
 | 
			
		||||
	adjust_for_rotation(rc.tablet.rotation, x, y);
 | 
			
		||||
 | 
			
		||||
	if (!tablet->tablet_v2) {
 | 
			
		||||
	if (rc.tablet.force_mouse_emulation
 | 
			
		||||
			|| !tablet->tablet_v2) {
 | 
			
		||||
		return NULL;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -154,7 +155,8 @@ handle_proximity(struct wl_listener *listener, void *data)
 | 
			
		|||
	double x, y;
 | 
			
		||||
	struct wlr_surface *surface = tablet_get_coords(tablet, &x, &y);
 | 
			
		||||
 | 
			
		||||
	if (tablet->seat->server->tablet_manager && !tool) {
 | 
			
		||||
	if (!rc.tablet.force_mouse_emulation
 | 
			
		||||
			&& tablet->seat->server->tablet_manager && !tool) {
 | 
			
		||||
		/*
 | 
			
		||||
		 * Unfortunately `wlr_tool` is only present in the events, so
 | 
			
		||||
		 * use proximity for creating a `wlr_tablet_v2_tablet_tool`.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue