From: Seunghun Lee Date: Thu, 22 May 2025 02:28:23 +0000 (+0900) Subject: surface_view: Use wl_listener X-Git-Tag: accepted/tizen/unified/20250612.024607~48 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F92%2F325392%2F1;p=platform%2Fupstream%2Fenlightenment.git surface_view: Use wl_listener Instead of using E_Client_Hook, it uses e_client_destroy_listener_add. Change-Id: I33e98a11be6b698ab6dbce425364620fe2157ed0 --- diff --git a/src/bin/server/e_surface_view.c b/src/bin/server/e_surface_view.c index abdb5d9afc..d61559663f 100644 --- a/src/bin/server/e_surface_view.c +++ b/src/bin/server/e_surface_view.c @@ -34,8 +34,7 @@ struct _E_Surface_View E_Surface *surface; E_Client *ec; - E_Client_Hook *client_del_hook; - + struct wl_listener ec_destroy; struct wl_listener viewport_commit; struct wl_listener surface_commit; }; @@ -60,7 +59,7 @@ _surface_view_destroy(E_Surface_View *view) _surface_view_surface_unlink(view); e_surface_destroy(view->surface); - e_client_hook_del(view->client_del_hook); + wl_list_remove(&view->ec_destroy.link); free(view); } @@ -194,12 +193,9 @@ _launchscreen_ec_find(struct wl_resource *surface_resource) } static void -_surface_view_cb_client_del(void *data, E_Client *ec) +_surface_view_cb_ec_destroy(struct wl_listener *listener, void *data) { - E_Surface_View *view = data; - - if (view->ec != ec) - return; + E_Surface_View *view = wl_container_of(listener, view, ec_destroy); TRACE_DS_BEGIN(SURFACE_VIEW:CLIENT DEL CB); _surface_view_destroy(view); @@ -212,7 +208,9 @@ _surface_view_ec_set(E_Surface_View *view, E_Client *ec) e_surface_ec_set(view->surface, ec); view->ec = ec; - view->client_del_hook = e_client_hook_add(E_CLIENT_HOOK_DEL, _surface_view_cb_client_del, view); + + view->ec_destroy.notify = _surface_view_cb_ec_destroy; + e_client_destroy_listener_add(ec, &view->ec_destroy); ec->argb = EINA_FALSE; ec->redirected = ec->ignored = 1;