From: Peter Hutterer Date: Thu, 24 Jul 2014 06:15:43 +0000 (+1000) Subject: evdev: don't return a width/height if we faked the resolution X-Git-Tag: upstream/0.5.0+5+gd1cc842~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=22e86f932282ce623736bc59cc243f8a87759f68;p=platform%2Fupstream%2Flibinput.git evdev: don't return a width/height if we faked the resolution Signed-off-by: Peter Hutterer Reviewed-by: Hans de Goede --- diff --git a/src/evdev.c b/src/evdev.c index f980812b..a1255100 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -620,6 +620,7 @@ evdev_configure_device(struct evdev_device *device) fixed = *absinfo; fixed.resolution = 1; libevdev_set_abs_info(evdev, ABS_X, &fixed); + device->abs.fake_resolution = 1; } device->abs.absinfo_x = absinfo; has_abs = 1; @@ -629,6 +630,7 @@ evdev_configure_device(struct evdev_device *device) fixed = *absinfo; fixed.resolution = 1; libevdev_set_abs_info(evdev, ABS_Y, &fixed); + device->abs.fake_resolution = 1; } device->abs.absinfo_y = absinfo; has_abs = 1; @@ -645,6 +647,7 @@ evdev_configure_device(struct evdev_device *device) libevdev_set_abs_info(evdev, ABS_MT_POSITION_X, &fixed); + device->abs.fake_resolution = 1; } device->abs.absinfo_x = absinfo; absinfo = libevdev_get_abs_info(evdev, ABS_MT_POSITION_Y); @@ -654,6 +657,7 @@ evdev_configure_device(struct evdev_device *device) libevdev_set_abs_info(evdev, ABS_MT_POSITION_Y, &fixed); + device->abs.fake_resolution = 1; } device->abs.absinfo_y = absinfo; device->is_mt = 1; @@ -908,7 +912,8 @@ evdev_device_get_size(struct evdev_device *device, x = libevdev_get_abs_info(device->evdev, ABS_X); y = libevdev_get_abs_info(device->evdev, ABS_Y); - if (!x || !y || !x->resolution || !y->resolution) + if (!x || !y || device->abs.fake_resolution || + !x->resolution || !y->resolution) return -1; *width = evdev_convert_to_mm(x, x->maximum); diff --git a/src/evdev.h b/src/evdev.h index fad1f84c..a21b03e5 100644 --- a/src/evdev.h +++ b/src/evdev.h @@ -67,8 +67,9 @@ struct evdev_device { int fd; struct { const struct input_absinfo *absinfo_x, *absinfo_y; - int32_t x, y; + int fake_resolution; + int32_t x, y; int32_t seat_slot; int apply_calibration;