Revert "xdg_shell_v6: Do not issue a protocol error" 08/302508/1
authorSeunghun Lee <shiin.lee@samsung.com>
Thu, 7 Dec 2023 09:16:02 +0000 (18:16 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Fri, 8 Dec 2023 01:45:46 +0000 (10:45 +0900)
This reverts commit 9d930db4726f393de3da7a34dd01b59a608c829c.

Thanks to the commit[1] in efl, this patch is no longer needed.

[1]: https://review.tizen.org/gerrit/c/platform/upstream/efl/+/302250/

Change-Id: I0ebf9bb298da3a2c04b8bae2f60e2e3bf02efe4f

src/bin/e_xdg_shell_v6.c

index 21d020b..ab1c5c0 100644 (file)
@@ -29,8 +29,6 @@ struct _E_Xdg_Toplevel_V6
    struct ds_xdg_toplevel_v6 *ds_toplevel;
    E_Client *ec;
 
-   struct wl_resource *xdg_surface_resource;
-
    struct wl_listener set_parent;
    struct wl_listener set_title;
    struct wl_listener set_app_id;
@@ -43,8 +41,6 @@ struct _E_Xdg_Toplevel_V6
    struct wl_listener configure;
    struct wl_listener ping_timeout;
    struct wl_listener surface_commit;
-   struct wl_listener resource_destroy;
-   struct wl_listener xdg_surface_resource_destroy;
 };
 
 static void _e_xdg_shell_v6_cb_destroy(struct wl_listener *listener, void *data);
@@ -725,53 +721,6 @@ _e_xdg_toplevel_v6_finish(E_Xdg_Toplevel_V6 *toplevel)
 }
 
 static void
-_e_xdg_toplevel_v6_cb_resource_destroy(struct wl_listener *listener, void *data)
-{
-   E_Xdg_Toplevel_V6 *toplevel;
-   struct ds_xdg_surface_v6 *ds_xdg_surface;
-
-   toplevel = wl_container_of(listener, toplevel, resource_destroy);
-   ds_xdg_surface = ds_xdg_surface_v6_from_resource(toplevel->xdg_surface_resource);
-   if (ds_xdg_surface)
-     ds_xdg_surface->role = DS_XDG_SURFACE_V6_ROLE_TOPLEVEL;
-
-   wl_list_remove(&toplevel->resource_destroy.link);
-   wl_list_init(&toplevel->resource_destroy.link);
-}
-
-static void
-_e_xdg_toplevel_v6_cb_xdg_surface_resource_destroy(struct wl_listener *listener, void *data)
-{
-   E_Xdg_Toplevel_V6 *toplevel;
-
-   toplevel = wl_container_of(listener, toplevel, xdg_surface_resource_destroy);
-   wl_list_remove(&toplevel->resource_destroy.link);
-   wl_list_remove(&toplevel->xdg_surface_resource_destroy.link);
-   free(toplevel);
-}
-
-/*
- * FIXME HACK
- * The libds will issue a protocol error for any client that attempts to
- * request wl_surface.commit after the xdg_toplevel_v6 resource has been
- * destroyed, but xdg_surface_v6 resource still alive.
- * The purpose of this function is to prevent it from happening by setting
- * ds_xdg_surface_v6->role to DS_XDG_SURFACE_V6_ROLE_TOPLEVEL to fool libds
- * implementation when xdg_toplevel_v6 resource is destroyed.
- */
-static void
-_e_xdg_toplevel_v6_role_keep_handler_init(E_Xdg_Toplevel_V6 *toplevel, struct ds_xdg_surface_v6 *ds_xdg_surface)
-{
-   toplevel->xdg_surface_resource = ds_xdg_surface->resource;
-
-   toplevel->xdg_surface_resource_destroy.notify = _e_xdg_toplevel_v6_cb_xdg_surface_resource_destroy;
-   wl_resource_add_destroy_listener(ds_xdg_surface->resource, &toplevel->xdg_surface_resource_destroy);
-
-   toplevel->resource_destroy.notify = _e_xdg_toplevel_v6_cb_resource_destroy;
-   wl_resource_add_destroy_listener(ds_xdg_surface->toplevel->resource, &toplevel->resource_destroy);
-}
-
-static void
 _e_xdg_toplevel_v6_add(struct ds_xdg_surface_v6 *ds_xdg_surface)
 {
    E_Xdg_Toplevel_V6 *toplevel;
@@ -789,7 +738,6 @@ _e_xdg_toplevel_v6_add(struct ds_xdg_surface_v6 *ds_xdg_surface)
 
    _e_xdg_toplevel_v6_listener_init(toplevel);
    _e_xdg_toplevel_v6_init(toplevel);
-   _e_xdg_toplevel_v6_role_keep_handler_init(toplevel, ds_xdg_surface);
 
    LOG("Created E_Xdg_Toplevel_V6(%p)", toplevel->ec, toplevel);
 }
@@ -805,4 +753,5 @@ _e_xdg_toplevel_v6_cb_xdg_surface_destroy(struct wl_listener *listener, void *da
 
    _e_xdg_toplevel_v6_listener_finish(toplevel);
    _e_xdg_toplevel_v6_finish(toplevel);
+   free(toplevel);
 }