ext-foreign-toplevel-handle: split out foreign_toplevel_create_resource_for_client

Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
This commit is contained in:
Anna (navi) Figueiredo Gomes 2025-05-19 00:45:18 +02:00
parent 22e1d9e91f
commit 9522b77e84
2 changed files with 12 additions and 4 deletions

View file

@ -4,6 +4,8 @@
#include <wayland-server-core.h> #include <wayland-server-core.h>
#include <wlr/types/wlr_ext_foreign_toplevel_list_v1.h> #include <wlr/types/wlr_ext_foreign_toplevel_list_v1.h>
struct wl_resource *foreign_toplevel_create_resource_for_client(
struct wlr_ext_foreign_toplevel_handle_v1 *toplevel, struct wl_client *client);
void foreign_toplevel_send_details_to_resource( void foreign_toplevel_send_details_to_resource(
struct wlr_ext_foreign_toplevel_handle_v1 *toplevel, struct wl_resource *resource); struct wlr_ext_foreign_toplevel_handle_v1 *toplevel, struct wl_resource *resource);

View file

@ -113,10 +113,8 @@ static void foreign_toplevel_resource_destroy(struct wl_resource *resource) {
wl_list_remove(wl_resource_get_link(resource)); wl_list_remove(wl_resource_get_link(resource));
} }
static struct wl_resource *create_toplevel_resource_for_resource( struct wl_resource *foreign_toplevel_create_resource_for_client(
struct wlr_ext_foreign_toplevel_handle_v1 *toplevel, struct wlr_ext_foreign_toplevel_handle_v1 *toplevel, struct wl_client *client) {
struct wl_resource *list_resource) {
struct wl_client *client = wl_resource_get_client(list_resource);
struct wl_resource *resource = wl_resource_create(client, struct wl_resource *resource = wl_resource_create(client,
&ext_foreign_toplevel_handle_v1_interface, toplevel->version, 0); &ext_foreign_toplevel_handle_v1_interface, toplevel->version, 0);
if (!resource) { if (!resource) {
@ -128,6 +126,14 @@ static struct wl_resource *create_toplevel_resource_for_resource(
foreign_toplevel_resource_destroy); foreign_toplevel_resource_destroy);
wl_list_insert(&toplevel->resources, wl_resource_get_link(resource)); wl_list_insert(&toplevel->resources, wl_resource_get_link(resource));
return resource;
}
static struct wl_resource *create_toplevel_resource_for_resource(
struct wlr_ext_foreign_toplevel_handle_v1 *toplevel,
struct wl_resource *list_resource) {
struct wl_resource *resource = foreign_toplevel_create_resource_for_client(
toplevel, wl_resource_get_client(list_resource));
ext_foreign_toplevel_list_v1_send_toplevel(list_resource, resource); ext_foreign_toplevel_list_v1_send_toplevel(list_resource, resource);
return resource; return resource;
} }