backend/libinput: send touch frame events
This commit is contained in:
		
							parent
							
								
									84906a832f
								
							
						
					
					
						commit
						2d36d7fb67
					
				|  | @ -271,7 +271,7 @@ void handle_libinput_event(struct wlr_libinput_backend *backend, | |||
| 		handle_touch_cancel(event, libinput_dev); | ||||
| 		break; | ||||
| 	case LIBINPUT_EVENT_TOUCH_FRAME: | ||||
| 		// no-op (at least for now)
 | ||||
| 		handle_touch_frame(event, libinput_dev); | ||||
| 		break; | ||||
| 	case LIBINPUT_EVENT_TABLET_TOOL_AXIS: | ||||
| 		handle_tablet_tool_axis(event, libinput_dev); | ||||
|  |  | |||
|  | @ -95,3 +95,14 @@ void handle_touch_cancel(struct libinput_event *event, | |||
| 	wlr_event.touch_id = libinput_event_touch_get_seat_slot(tevent); | ||||
| 	wlr_signal_emit_safe(&wlr_dev->touch->events.cancel, &wlr_event); | ||||
| } | ||||
| 
 | ||||
| void handle_touch_frame(struct libinput_event *event, | ||||
| 		struct libinput_device *libinput_dev) { | ||||
| 	struct wlr_input_device *wlr_dev = | ||||
| 		get_appropriate_device(WLR_INPUT_DEVICE_TOUCH, libinput_dev); | ||||
| 	if (!wlr_dev) { | ||||
| 		wlr_log(WLR_DEBUG, "Got a touch event for a device with no touch?"); | ||||
| 		return; | ||||
| 	} | ||||
| 	wlr_signal_emit_safe(&wlr_dev->touch->events.frame, NULL); | ||||
| } | ||||
|  |  | |||
|  | @ -82,6 +82,8 @@ void handle_touch_motion(struct libinput_event *event, | |||
| 		struct libinput_device *device); | ||||
| void handle_touch_cancel(struct libinput_event *event, | ||||
| 		struct libinput_device *device); | ||||
| void handle_touch_frame(struct libinput_event *event, | ||||
| 		struct libinput_device *device); | ||||
| 
 | ||||
| struct wlr_tablet *create_libinput_tablet( | ||||
| 		struct libinput_device *device); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue