summaryrefslogtreecommitdiffstats
path: root/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0004-weston-Fix-touch-screen-crash-issue.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0004-weston-Fix-touch-screen-crash-issue.patch')
-rw-r--r--meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0004-weston-Fix-touch-screen-crash-issue.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0004-weston-Fix-touch-screen-crash-issue.patch b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0004-weston-Fix-touch-screen-crash-issue.patch
new file mode 100644
index 000000000..4849d5b64
--- /dev/null
+++ b/meta-agl-bsp/meta-ti/recipes-arago/weston/weston/0004-weston-Fix-touch-screen-crash-issue.patch
@@ -0,0 +1,39 @@
+From 60250e9dc57fe56148c8a24bba107bce8a873fb4 Mon Sep 17 00:00:00 2001
+From: Karthik Ramanan <a0393906@ti.com>
+Date: Mon, 12 Mar 2018 10:56:28 +0530
+Subject: [PATCH 4/4] weston: Fix touch screen crash issue
+
+Touch screen operation causes the weston to crash with segment fault sometimes.
+The crash occurs when the coordinate (x,y) passed to the weston input module
+is outside the view window, hence the weston compositor is not able to pick
+up a display view and there is no code to detect this condition at function
+notify_touch().
+
+Upstream status: pending
+
+Signed-off-by: Eric Ruei <e-ruei1@ti.com>
+Signed-off-by: Karthik Ramanan <a0393906@ti.com>
+---
+ libweston/input.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/libweston/input.c b/libweston/input.c
+index 4fedc55..bcb2f28 100644
+--- a/libweston/input.c
++++ b/libweston/input.c
+@@ -2185,6 +2185,12 @@ notify_touch(struct weston_seat *seat, uint32_t time, int touch_id,
+ * until all touch points are up again. */
+ if (touch->num_tp == 1) {
+ ev = weston_compositor_pick_view(ec, x, y, &sx, &sy);
++ if (!ev)
++ {
++ weston_log("notify_touch: weston_compositor_pick_view(%d, %d) failed to find a view!\n",
++ wl_fixed_to_int(x), wl_fixed_to_int(y));
++ return;
++ }
+ weston_touch_set_focus(touch, ev);
+ } else if (!touch->focus) {
+ /* Unexpected condition: We have non-initial touch but
+--
+1.9.1
+