From: Denys Dmytriyenko <[email protected]>

Signed-off-by: Denys Dmytriyenko <[email protected]>
---
 .../wayland/weston/normalize-WL_CALIBRATION.patch  | 139 ---------------------
 ...weston_1.5.0.bbappend => weston_1.6.0.bbappend} |   9 +-
 2 files changed, 1 insertion(+), 147 deletions(-)
 delete mode 100644 
meta-arago-distro/recipes-graphics/wayland/weston/normalize-WL_CALIBRATION.patch
 rename meta-arago-distro/recipes-graphics/wayland/{weston_1.5.0.bbappend => 
weston_1.6.0.bbappend} (78%)

diff --git 
a/meta-arago-distro/recipes-graphics/wayland/weston/normalize-WL_CALIBRATION.patch
 
b/meta-arago-distro/recipes-graphics/wayland/weston/normalize-WL_CALIBRATION.patch
deleted file mode 100644
index 054d4de..0000000
--- 
a/meta-arago-distro/recipes-graphics/wayland/weston/normalize-WL_CALIBRATION.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-Subject: [PATCH weston] libinput: normalize WL_CALIBRATION before passing it
- to libinput
-In-Reply-To: <[email protected]>
-References: <[email protected]>
-Message-ID: <[email protected]>
-
-WL_CALIBRATION, introduced in weston-1.1, requires the translation component
-of the calibration matrix to be in screen coordinates. libinput does not have
-access to this and it's not a very generic way to do this anyway. So with
-the libinput backend, WL_CALIBRATION support is currently broken (#82742).
-This cannot be fixed in libinput without changing its API for this specific
-use-case.
-
-This patch lets weston take care of WL_CALIBRATION. It takes the original
-format and normalizes it before passing it to libinput. This way libinput
-still does the coordinate transformation, weston just needs to provide the
-initial configuration.
-
-Note that this needs an updated libinput, otherwise libinput will try to
-transform coordinates as well.
----
- src/libinput-device.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 87 insertions(+)
-
-diff --git a/src/libinput-device.c b/src/libinput-device.c
-index 6e50eeb..96fe2f2 100644
---- a/src/libinput-device.c
-+++ b/src/libinput-device.c
-@@ -282,6 +282,90 @@ notify_output_destroy(struct wl_listener *listener, void 
*data)
-       }
- }
- 
-+/**
-+ * The WL_CALIBRATION property requires a pixel-specific matrix to be
-+ * applied after scaling device coordinates to screen coordinates. libinput
-+ * can't do that, so we need to convert the calibration to the normalized
-+ * format libinput expects.
-+ */
-+static void
-+evdev_device_set_calibration(struct evdev_device *device)
-+{
-+      struct udev *udev;
-+      struct udev_device *udev_device = NULL;
-+      const char *sysname = libinput_device_get_sysname(device->device);
-+      const char *calibration_values;
-+      uint32_t width, height;
-+      float calibration[6];
-+      enum libinput_config_status status;
-+
-+      if (!device->output)
-+              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;
-+
-+      udev_device = udev_device_new_from_subsystem_sysname(udev,
-+                                                           "input",
-+                                                           sysname);
-+      if (!udev_device)
-+              goto out;
-+
-+      calibration_values =
-+      udev_device_get_property_value(udev_device,
-+                                     "WL_CALIBRATION");
-+
-+      if (!calibration_values || sscanf(calibration_values,
-+                                        "%f %f %f %f %f %f",
-+                                        &calibration[0],
-+                                        &calibration[1],
-+                                        &calibration[2],
-+                                        &calibration[3],
-+                                        &calibration[4],
-+                                        &calibration[5]) != 6)
-+              goto out;
-+
-+      weston_log("Applying calibration: %f %f %f %f %f %f "
-+                 "(normalized %f %f)\n",
-+                  calibration[0],
-+                  calibration[1],
-+                  calibration[2],
-+                  calibration[3],
-+                  calibration[4],
-+                  calibration[5],
-+                  calibration[2]/width,
-+                  calibration[5]/height);
-+
-+      /* normalize to a format libinput can use. There is a chance of
-+         this being wrong if the width/height don't match the device
-+         width/height but I'm not sure how to fix that */
-+      calibration[2] /= width;
-+      calibration[5] /= height;
-+
-+      status = libinput_device_config_calibration_set_matrix(device->device,
-+                                                             calibration);
-+      if (status != LIBINPUT_CONFIG_STATUS_SUCCESS)
-+              weston_log("Failed to apply calibration.\n");
-+
-+out:
-+      if (udev_device)
-+              udev_device_unref(udev_device);
-+      udev_unref(udev);
-+}
-+
- void
- evdev_device_set_output(struct evdev_device *device,
-                       struct weston_output *output)
-@@ -295,6 +379,7 @@ evdev_device_set_output(struct evdev_device *device,
-       device->output_destroy_listener.notify = notify_output_destroy;
-       wl_signal_add(&output->destroy_signal,
-                     &device->output_destroy_listener);
-+      evdev_device_set_calibration(device);
- }
- 
- static void
-@@ -318,6 +403,8 @@ configure_device(struct evdev_device *device)
-               libinput_device_config_tap_set_enabled(device->device,
-                                                      enable_tap);
-       }
-+
-+      evdev_device_set_calibration(device);
- }
- 
- struct evdev_device *
--- 
-1.9.3
-
diff --git a/meta-arago-distro/recipes-graphics/wayland/weston_1.5.0.bbappend 
b/meta-arago-distro/recipes-graphics/wayland/weston_1.6.0.bbappend
similarity index 78%
rename from meta-arago-distro/recipes-graphics/wayland/weston_1.5.0.bbappend
rename to meta-arago-distro/recipes-graphics/wayland/weston_1.6.0.bbappend
index dfbda15..5d39575 100644
--- a/meta-arago-distro/recipes-graphics/wayland/weston_1.5.0.bbappend
+++ b/meta-arago-distro/recipes-graphics/wayland/weston_1.6.0.bbappend
@@ -1,21 +1,14 @@
 # When configured for fbdev compositor, make it the default
 PACKAGECONFIG[fbdev] = "--enable-fbdev-compositor 
WESTON_NATIVE_BACKEND="fbdev-backend.so",--disable-fbdev-compositor,udev mtdev"
 
-PR_append = "-arago1"
+PR_append = "-arago0"
 
 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
 
-DEPENDS += "libinput"
-
 SRC_URI += "file://wayland_env.sh \
             file://weston.ini \
-            file://normalize-WL_CALIBRATION.patch \
 "
 
-SRCREV = "e67118c80ad411ac46b7096aae2635510c80ea6d"
-
-EXTRA_OECONF += "--enable-libinput-backend"
-
 # Add custom Arago Wayland Environment script file
 do_install_append () {
     install -d ${D}${sysconfdir}/profile.d
-- 
2.0.4

_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago

Reply via email to