mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-23 05:15:58 +01:00
layer-shell: error on 0 dimension without anchors
The protocol requires clients to set opposing anchors when requesting a width or height of 0. The goal of this patch is not to break clients that rely on this behavior but to improve the consistency of the layer shell ecosystem through adherence to the protocol.
This commit is contained in:
parent
5012121d33
commit
8dec751a6d
1 changed files with 20 additions and 0 deletions
|
@ -307,6 +307,26 @@ static void layer_surface_role_commit(struct wlr_surface *wlr_surface) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const uint32_t horiz = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT |
|
||||||
|
ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT;
|
||||||
|
if (surface->client_pending.desired_width == 0 &&
|
||||||
|
(surface->client_pending.anchor & horiz) != horiz) {
|
||||||
|
wl_resource_post_error(surface->resource,
|
||||||
|
ZWLR_LAYER_SURFACE_V1_ERROR_INVALID_SIZE,
|
||||||
|
"width 0 requested without setting left and right anchors");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const uint32_t vert = ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP |
|
||||||
|
ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM;
|
||||||
|
if (surface->client_pending.desired_height == 0 &&
|
||||||
|
(surface->client_pending.anchor & vert) != vert) {
|
||||||
|
wl_resource_post_error(surface->resource,
|
||||||
|
ZWLR_LAYER_SURFACE_V1_ERROR_INVALID_SIZE,
|
||||||
|
"height 0 requested without setting top and bottom anchors");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (surface->closed) {
|
if (surface->closed) {
|
||||||
// Ignore commits after the compositor has closed it
|
// Ignore commits after the compositor has closed it
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue