mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	input: subscribe to tablet tool events from cursor
Contrary to the raw tablet events, the cursor events transform the coordinates based on a mapped output orientation. Otherwise those events are the same.
This commit is contained in:
		
							parent
							
								
									670cc0f511
								
							
						
					
					
						commit
						060626e9c7
					
				
					 2 changed files with 16 additions and 16 deletions
				
			
		| 
						 | 
					@ -23,10 +23,10 @@ struct drawing_tablet {
 | 
				
			||||||
	double slider;
 | 
						double slider;
 | 
				
			||||||
	double wheel_delta;
 | 
						double wheel_delta;
 | 
				
			||||||
	struct {
 | 
						struct {
 | 
				
			||||||
		struct wl_listener proximity;
 | 
							struct wl_listener tablet_tool_proximity;
 | 
				
			||||||
		struct wl_listener axis;
 | 
							struct wl_listener tablet_tool_axis;
 | 
				
			||||||
		struct wl_listener tip;
 | 
							struct wl_listener tablet_tool_tip;
 | 
				
			||||||
		struct wl_listener button;
 | 
							struct wl_listener tablet_tool_button;
 | 
				
			||||||
		struct wl_listener destroy;
 | 
							struct wl_listener destroy;
 | 
				
			||||||
	} handlers;
 | 
						} handlers;
 | 
				
			||||||
	struct wl_list link; /* seat.tablets */
 | 
						struct wl_list link; /* seat.tablets */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -236,7 +236,7 @@ notify_motion(struct drawing_tablet *tablet, struct drawing_tablet_tool *tool,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
handle_proximity(struct wl_listener *listener, void *data)
 | 
					handle_tablet_tool_proximity(struct wl_listener *listener, void *data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct wlr_tablet_tool_proximity_event *ev = data;
 | 
						struct wlr_tablet_tool_proximity_event *ev = data;
 | 
				
			||||||
	struct drawing_tablet *tablet = ev->tablet->data;
 | 
						struct drawing_tablet *tablet = ev->tablet->data;
 | 
				
			||||||
| 
						 | 
					@ -286,7 +286,7 @@ handle_proximity(struct wl_listener *listener, void *data)
 | 
				
			||||||
static bool is_down_mouse_emulation = false;
 | 
					static bool is_down_mouse_emulation = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
handle_axis(struct wl_listener *listener, void *data)
 | 
					handle_tablet_tool_axis(struct wl_listener *listener, void *data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct wlr_tablet_tool_axis_event *ev = data;
 | 
						struct wlr_tablet_tool_axis_event *ev = data;
 | 
				
			||||||
	struct drawing_tablet *tablet = ev->tablet->data;
 | 
						struct drawing_tablet *tablet = ev->tablet->data;
 | 
				
			||||||
| 
						 | 
					@ -460,7 +460,7 @@ seat_pointer_end_grab(struct drawing_tablet_tool *tool,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
handle_tip(struct wl_listener *listener, void *data)
 | 
					handle_tablet_tool_tip(struct wl_listener *listener, void *data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct wlr_tablet_tool_tip_event *ev = data;
 | 
						struct wlr_tablet_tool_tip_event *ev = data;
 | 
				
			||||||
	struct drawing_tablet *tablet = ev->tablet->data;
 | 
						struct drawing_tablet *tablet = ev->tablet->data;
 | 
				
			||||||
| 
						 | 
					@ -535,7 +535,7 @@ handle_tip(struct wl_listener *listener, void *data)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
handle_button(struct wl_listener *listener, void *data)
 | 
					handle_tablet_tool_button(struct wl_listener *listener, void *data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct wlr_tablet_tool_button_event *ev = data;
 | 
						struct wlr_tablet_tool_button_event *ev = data;
 | 
				
			||||||
	struct drawing_tablet *tablet = ev->tablet->data;
 | 
						struct drawing_tablet *tablet = ev->tablet->data;
 | 
				
			||||||
| 
						 | 
					@ -604,10 +604,10 @@ handle_destroy(struct wl_listener *listener, void *data)
 | 
				
			||||||
	wl_list_remove(&tablet->link);
 | 
						wl_list_remove(&tablet->link);
 | 
				
			||||||
	tablet_pad_attach_tablet(tablet->seat);
 | 
						tablet_pad_attach_tablet(tablet->seat);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	wl_list_remove(&tablet->handlers.tip.link);
 | 
						wl_list_remove(&tablet->handlers.tablet_tool_tip.link);
 | 
				
			||||||
	wl_list_remove(&tablet->handlers.button.link);
 | 
						wl_list_remove(&tablet->handlers.tablet_tool_button.link);
 | 
				
			||||||
	wl_list_remove(&tablet->handlers.proximity.link);
 | 
						wl_list_remove(&tablet->handlers.tablet_tool_proximity.link);
 | 
				
			||||||
	wl_list_remove(&tablet->handlers.axis.link);
 | 
						wl_list_remove(&tablet->handlers.tablet_tool_axis.link);
 | 
				
			||||||
	wl_list_remove(&tablet->handlers.destroy.link);
 | 
						wl_list_remove(&tablet->handlers.destroy.link);
 | 
				
			||||||
	free(tablet);
 | 
						free(tablet);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -636,10 +636,10 @@ tablet_init(struct seat *seat, struct wlr_input_device *wlr_device)
 | 
				
			||||||
	tablet->wheel_delta = 0.0;
 | 
						tablet->wheel_delta = 0.0;
 | 
				
			||||||
	wlr_log(WLR_INFO, "tablet dimensions: %.2fmm x %.2fmm",
 | 
						wlr_log(WLR_INFO, "tablet dimensions: %.2fmm x %.2fmm",
 | 
				
			||||||
		tablet->tablet->width_mm, tablet->tablet->height_mm);
 | 
							tablet->tablet->width_mm, tablet->tablet->height_mm);
 | 
				
			||||||
	CONNECT_SIGNAL(tablet->tablet, &tablet->handlers, axis);
 | 
						CONNECT_SIGNAL(seat->cursor, &tablet->handlers, tablet_tool_axis);
 | 
				
			||||||
	CONNECT_SIGNAL(tablet->tablet, &tablet->handlers, proximity);
 | 
						CONNECT_SIGNAL(seat->cursor, &tablet->handlers, tablet_tool_proximity);
 | 
				
			||||||
	CONNECT_SIGNAL(tablet->tablet, &tablet->handlers, tip);
 | 
						CONNECT_SIGNAL(seat->cursor, &tablet->handlers, tablet_tool_tip);
 | 
				
			||||||
	CONNECT_SIGNAL(tablet->tablet, &tablet->handlers, button);
 | 
						CONNECT_SIGNAL(seat->cursor, &tablet->handlers, tablet_tool_button);
 | 
				
			||||||
	CONNECT_SIGNAL(wlr_device, &tablet->handlers, destroy);
 | 
						CONNECT_SIGNAL(wlr_device, &tablet->handlers, destroy);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	wl_list_insert(&seat->tablets, &tablet->link);
 | 
						wl_list_insert(&seat->tablets, &tablet->link);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue