aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/types/wlr_surface.h6
-rw-r--r--include/wlr/types/wlr_surface.h8
-rw-r--r--types/wlr_compositor.c3
-rw-r--r--types/wlr_surface.c19
4 files changed, 10 insertions, 26 deletions
diff --git a/include/types/wlr_surface.h b/include/types/wlr_surface.h
index bc30d2c9..b8c7d02d 100644
--- a/include/types/wlr_surface.h
+++ b/include/types/wlr_surface.h
@@ -11,4 +11,10 @@ struct wlr_renderer;
struct wlr_surface *surface_create(struct wl_client *client,
uint32_t version, uint32_t id, struct wlr_renderer *renderer);
+/**
+ * Create a new subsurface resource with the provided new ID.
+ */
+struct wlr_subsurface *subsurface_create(struct wlr_surface *surface,
+ struct wlr_surface *parent, uint32_t version, uint32_t id);
+
#endif
diff --git a/include/wlr/types/wlr_surface.h b/include/wlr/types/wlr_surface.h
index 00db6cd8..72dc4b30 100644
--- a/include/wlr/types/wlr_surface.h
+++ b/include/wlr/types/wlr_surface.h
@@ -214,14 +214,6 @@ bool wlr_surface_has_buffer(struct wlr_surface *surface);
struct wlr_texture *wlr_surface_get_texture(struct wlr_surface *surface);
/**
- * Create a new subsurface resource with the provided new ID. If `resource_list`
- * is non-NULL, adds the subsurface's resource to the list.
- */
-struct wlr_subsurface *wlr_subsurface_create(struct wlr_surface *surface,
- struct wlr_surface *parent, uint32_t version, uint32_t id,
- struct wl_list *resource_list);
-
-/**
* Get the root of the subsurface tree for this surface. Can return NULL if
* a surface in the tree has been destroyed.
*/
diff --git a/types/wlr_compositor.c b/types/wlr_compositor.c
index 22f0cd32..7ad68454 100644
--- a/types/wlr_compositor.c
+++ b/types/wlr_compositor.c
@@ -67,8 +67,7 @@ static void subcompositor_handle_get_subsurface(struct wl_client *client,
return;
}
- wlr_subsurface_create(surface, parent, wl_resource_get_version(resource),
- id, NULL);
+ subsurface_create(surface, parent, wl_resource_get_version(resource), id);
}
static const struct wl_subcompositor_interface subcompositor_impl = {
diff --git a/types/wlr_surface.c b/types/wlr_surface.c
index 8f863733..969645eb 100644
--- a/types/wlr_surface.c
+++ b/types/wlr_surface.c
@@ -15,7 +15,6 @@
#include "util/time.h"
#define CALLBACK_VERSION 1
-#define SUBSURFACE_VERSION 1
static int min(int fst, int snd) {
if (fst < snd) {
@@ -860,7 +859,6 @@ static struct wlr_subsurface *subsurface_from_resource(
static void subsurface_resource_destroy(struct wl_resource *resource) {
struct wlr_subsurface *subsurface = subsurface_from_resource(resource);
- wl_list_remove(wl_resource_get_link(resource));
subsurface_destroy(subsurface);
}
@@ -1133,11 +1131,8 @@ static void subsurface_handle_surface_destroy(struct wl_listener *listener,
subsurface_destroy(subsurface);
}
-struct wlr_subsurface *wlr_subsurface_create(struct wlr_surface *surface,
- struct wlr_surface *parent, uint32_t version, uint32_t id,
- struct wl_list *resource_list) {
- assert(version <= SUBSURFACE_VERSION);
-
+struct wlr_subsurface *subsurface_create(struct wlr_surface *surface,
+ struct wlr_surface *parent, uint32_t version, uint32_t id) {
struct wl_client *client = wl_resource_get_client(surface->resource);
struct wlr_subsurface *subsurface =
@@ -1156,8 +1151,7 @@ struct wlr_subsurface *wlr_subsurface_create(struct wlr_surface *surface,
return NULL;
}
wl_resource_set_implementation(subsurface->resource,
- &subsurface_implementation, subsurface,
- subsurface_resource_destroy);
+ &subsurface_implementation, subsurface, subsurface_resource_destroy);
wl_signal_init(&subsurface->events.destroy);
wl_signal_init(&subsurface->events.map);
@@ -1176,13 +1170,6 @@ struct wlr_subsurface *wlr_subsurface_create(struct wlr_surface *surface,
surface->role_data = subsurface;
- struct wl_list *resource_link = wl_resource_get_link(subsurface->resource);
- if (resource_list != NULL) {
- wl_list_insert(resource_list, resource_link);
- } else {
- wl_list_init(resource_link);
- }
-
wlr_signal_emit_safe(&parent->events.new_subsurface, subsurface);
return subsurface;