mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-12-22 18:09:49 +01:00
subcompositor: simplify get_subsurface handler
This commit is contained in:
parent
40dde59475
commit
49435cb27b
1 changed files with 4 additions and 22 deletions
|
@ -422,34 +422,16 @@ static void subcompositor_handle_get_subsurface(struct wl_client *client,
|
|||
struct wlr_surface *surface = wlr_surface_from_resource(surface_resource);
|
||||
struct wlr_surface *parent = wlr_surface_from_resource(parent_resource);
|
||||
|
||||
static const char msg[] = "get_subsurface: wl_subsurface@";
|
||||
|
||||
if (surface == parent) {
|
||||
wl_resource_post_error(resource,
|
||||
WL_SUBCOMPOSITOR_ERROR_BAD_SURFACE,
|
||||
"%s%" PRIu32 ": wl_surface@%" PRIu32 " cannot be its own parent",
|
||||
msg, id, wl_resource_get_id(surface_resource));
|
||||
return;
|
||||
}
|
||||
|
||||
if (wlr_subsurface_try_from_wlr_surface(surface) != NULL) {
|
||||
wl_resource_post_error(resource,
|
||||
WL_SUBCOMPOSITOR_ERROR_BAD_SURFACE,
|
||||
"%s%" PRIu32 ": wl_surface@%" PRIu32 " is already a sub-surface",
|
||||
msg, id, wl_resource_get_id(surface_resource));
|
||||
if (!wlr_surface_set_role(surface, &subsurface_role, NULL,
|
||||
resource, WL_SUBCOMPOSITOR_ERROR_BAD_SURFACE)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (wlr_surface_get_root_surface(parent) == surface) {
|
||||
wl_resource_post_error(resource,
|
||||
WL_SUBCOMPOSITOR_ERROR_BAD_SURFACE,
|
||||
"%s%" PRIu32 ": wl_surface@%" PRIu32 " is an ancestor of parent",
|
||||
msg, id, wl_resource_get_id(surface_resource));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!wlr_surface_set_role(surface, &subsurface_role, NULL,
|
||||
resource, WL_SUBCOMPOSITOR_ERROR_BAD_SURFACE)) {
|
||||
"wl_subsurface@%" PRIu32
|
||||
" cannot be a parent of itself or its ancestor", id);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue