virtual_touch: fix to retrieve ec from wl_listeners's object, not from data 06/321506/1
authorduna.oh <duna.oh@samsung.com>
Thu, 20 Mar 2025 07:56:13 +0000 (16:56 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Mon, 24 Mar 2025 08:18:17 +0000 (17:18 +0900)
Change-Id: Id7c8b66b29d6bcda1e730baeb59ffd0e4cb5ccdd

src/bin/inputmgr/services/e_service_virtual_touch.c

index 9f2bb01fa20f07ba6fb188726c51d708f3f827f0..beb600d74f4ef02d8daa20fd641c7d8c6a11c210 100644 (file)
@@ -705,13 +705,17 @@ _e_service_virtual_touch_evas_callback_del(E_Client *ec)
 static void
 _e_service_virtual_touch_cb_client_destroy(struct wl_listener *listener, void *data)
 {
-   E_Client *ec = data, *ec_data;
+   E_Client *ec, *ec_data;
    E_Service_Virtual_Touch_Private_Client *vtp_client;
    Eina_List *l, *ll;
 
-   EINA_SAFETY_ON_NULL_RETURN(ec);
-   
    vtp_client = wl_container_of(listener, vtp_client, client_destroy);
+   ec = vtp_client->ec;
+   EINA_SAFETY_ON_NULL_RETURN(ec);
+
+   wl_list_remove(&vtp_client->client_virtual_touch.link);
+   wl_list_remove(&vtp_client->client_destroy.link);
+
    E_FREE(vtp_client);
 
    EINA_LIST_FOREACH_SAFE(virtual_touch->list.ec, l, ll, ec_data)