[PATCH weston 02/25] libinput: note if calibrating without an output
Pekka Paalanen
ppaalanen at gmail.com
Fri Mar 23 12:00:42 UTC 2018
From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
Print a note that calibration got skipped if the input device supports a
calibration matrix but there is no associated output to compute it from.
Helps with debugging touchscreen calibration issues.
The code is reorganized and commented a bit, but this does not change
the behaviour.
Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
---
libweston/libinput-device.c | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/libweston/libinput-device.c b/libweston/libinput-device.c
index 9b2577b6..48bfd6f1 100644
--- a/libweston/libinput-device.c
+++ b/libweston/libinput-device.c
@@ -463,21 +463,29 @@ evdev_device_set_calibration(struct evdev_device *device)
float calibration[6];
enum libinput_config_status status;
- if (!device->output)
+ if (!libinput_device_config_calibration_has_matrix(device->device))
+ return;
+
+ /* If LIBINPUT_CALIBRATION_MATRIX was set to non-identity, we will not
+ * override it with WL_CALIBRATION. It also means we don't need an
+ * output to load a calibration. */
+ if (libinput_device_config_calibration_get_default_matrix(
+ device->device,
+ calibration) != 0)
+ return;
+
+ if (!device->output) {
+ weston_log("input device %s has no enabled output associated "
+ "(%s named), skipping calibration for now.\n",
+ sysname, device->output_name ?: "none");
return;
+ }
width = device->output->width;
height = device->output->height;
if (width == 0 || height == 0)
return;
- /* If libinput has a pre-set calibration matrix, don't override it */
- if (!libinput_device_config_calibration_has_matrix(device->device) ||
- libinput_device_config_calibration_get_default_matrix(
- device->device,
- calibration) != 0)
- return;
-
udev = udev_new();
if (!udev)
return;
--
2.16.1
More information about the wayland-devel
mailing list