types/wlr_input_device: move width_mm and height_mm fields to wlr_tablet and wlr_touch

This commit is contained in:
Simon Zeni 2022-03-08 16:54:28 -05:00
parent a92e5f8d46
commit 96ccc50c57
6 changed files with 15 additions and 8 deletions

View file

@ -25,6 +25,9 @@ void init_device_tablet(struct wlr_libinput_input_device *dev) {
wlr_tablet->base.vendor = libinput_device_get_id_vendor(dev->handle); wlr_tablet->base.vendor = libinput_device_get_id_vendor(dev->handle);
wlr_tablet->base.product = libinput_device_get_id_product(dev->handle); wlr_tablet->base.product = libinput_device_get_id_product(dev->handle);
libinput_device_get_size(dev->handle, &wlr_tablet->width_mm,
&wlr_tablet->height_mm);
struct udev_device *udev = libinput_device_get_udev_device(dev->handle); struct udev_device *udev = libinput_device_get_udev_device(dev->handle);
char **dst = wl_array_add(&wlr_tablet->paths, sizeof(char *)); char **dst = wl_array_add(&wlr_tablet->paths, sizeof(char *));
*dst = strdup(udev_device_get_syspath(udev)); *dst = strdup(udev_device_get_syspath(udev));

View file

@ -14,6 +14,9 @@ void init_device_touch(struct wlr_libinput_input_device *dev) {
wlr_touch_init(wlr_touch, &libinput_touch_impl, name); wlr_touch_init(wlr_touch, &libinput_touch_impl, name);
wlr_touch->base.vendor = libinput_device_get_id_vendor(dev->handle); wlr_touch->base.vendor = libinput_device_get_id_vendor(dev->handle);
wlr_touch->base.product = libinput_device_get_id_product(dev->handle); wlr_touch->base.product = libinput_device_get_id_product(dev->handle);
libinput_device_get_size(dev->handle, &wlr_touch->width_mm,
&wlr_touch->height_mm);
} }
struct wlr_libinput_input_device *device_from_touch( struct wlr_libinput_input_device *device_from_touch(

View file

@ -320,11 +320,12 @@ static void new_input_notify(struct wl_listener *listener, void *data) {
wl_signal_add(&device->tablet_pad->events.ring, &pstate->ring); wl_signal_add(&device->tablet_pad->events.ring, &pstate->ring);
wl_list_insert(&sample->tablet_pads, &pstate->link); wl_list_insert(&sample->tablet_pads, &pstate->link);
break; break;
case WLR_INPUT_DEVICE_TABLET_TOOL: case WLR_INPUT_DEVICE_TABLET_TOOL:;
sample->width_mm = device->width_mm == 0 ? struct wlr_tablet *tablet = device->tablet;
20 : device->width_mm; sample->width_mm = tablet->width_mm == 0 ?
sample->height_mm = device->height_mm == 0 ? 20 : tablet->width_mm;
10 : device->height_mm; sample->height_mm = tablet->height_mm == 0 ?
10 : tablet->height_mm;
struct tablet_tool_state *tstate = calloc(sizeof(struct tablet_tool_state), 1); struct tablet_tool_state *tstate = calloc(sizeof(struct tablet_tool_state), 1);
tstate->device = device; tstate->device = device;
@ -344,7 +345,6 @@ static void new_input_notify(struct wl_listener *listener, void *data) {
} }
} }
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
wlr_log_init(WLR_DEBUG, NULL); wlr_log_init(WLR_DEBUG, NULL);
struct wl_display *display = wl_display_create(); struct wl_display *display = wl_display_create();

View file

@ -29,8 +29,6 @@ struct wlr_input_device {
enum wlr_input_device_type type; enum wlr_input_device_type type;
unsigned int vendor, product; unsigned int vendor, product;
char *name; char *name;
// Or 0 if not applicable to this device
double width_mm, height_mm;
/* wlr_input_device.type determines which of these is valid */ /* wlr_input_device.type determines which of these is valid */
union { union {

View file

@ -64,6 +64,8 @@ struct wlr_tablet {
const struct wlr_tablet_impl *impl; const struct wlr_tablet_impl *impl;
double width_mm, height_mm;
struct { struct {
struct wl_signal axis; struct wl_signal axis;
struct wl_signal proximity; struct wl_signal proximity;

View file

@ -21,6 +21,7 @@ struct wlr_touch {
const struct wlr_touch_impl *impl; const struct wlr_touch_impl *impl;
char *output_name; char *output_name;
double width_mm, height_mm;
struct { struct {
struct wl_signal down; // struct wlr_event_touch_down struct wl_signal down; // struct wlr_event_touch_down