From d61453be22e0a1c65dd353f86a9407ad182d9676 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 2 Jun 2017 18:23:44 -0400 Subject: [PATCH] ecore-wl2: do not unref non-matching input device upon removal this is how you avoid crashing @fix --- src/lib/ecore_wl2/ecore_wl2_input.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c b/src/lib/ecore_wl2/ecore_wl2_input.c index 510139006b..693a3ad3ea 100644 --- a/src/lib/ecore_wl2/ecore_wl2_input.c +++ b/src/lib/ecore_wl2/ecore_wl2_input.c @@ -1543,17 +1543,17 @@ _ecore_evas_wl_common_cb_device_event(void *data, int type, void *event) return ECORE_CALLBACK_PASS_ON; } - if (ev->type == ECORE_WL2_DEVICE_TYPE_POINTER && devices->pointer_dev) + if ((ev->type == ECORE_WL2_DEVICE_TYPE_POINTER) && (devices->pointer_dev == ev->dev)) { efl_unref(devices->pointer_dev); devices->pointer_dev = NULL; } - else if (ev->type == ECORE_WL2_DEVICE_TYPE_KEYBOARD && devices->keyboard_dev) + else if ((ev->type == ECORE_WL2_DEVICE_TYPE_KEYBOARD) && (devices->keyboard_dev == ev->dev)) { efl_unref(devices->keyboard_dev); devices->keyboard_dev = NULL; } - else if (ev->type == ECORE_WL2_DEVICE_TYPE_TOUCH && devices->touch_dev) + else if ((ev->type == ECORE_WL2_DEVICE_TYPE_TOUCH) && (devices->touch_dev == ev->dev)) { efl_unref(devices->touch_dev); devices->touch_dev = NULL;