don't call applyexclusive just to return
This commit is contained in:
parent
57d0760635
commit
1678b05905
1 changed files with 42 additions and 44 deletions
86
dwl.c
86
dwl.c
|
@ -404,47 +404,44 @@ applyexclusive(struct wlr_box *usable_area,
|
||||||
uint32_t anchor, int32_t exclusive,
|
uint32_t anchor, int32_t exclusive,
|
||||||
int32_t margin_top, int32_t margin_right,
|
int32_t margin_top, int32_t margin_right,
|
||||||
int32_t margin_bottom, int32_t margin_left) {
|
int32_t margin_bottom, int32_t margin_left) {
|
||||||
Edge edges[4];
|
Edge edges[] = {
|
||||||
|
{ // Top
|
||||||
if (exclusive <= 0)
|
.singular_anchor = ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP,
|
||||||
return;
|
.anchor_triplet = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT |
|
||||||
|
ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT |
|
||||||
// Top
|
ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP,
|
||||||
edges[0].singular_anchor = ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP;
|
.positive_axis = &usable_area->y,
|
||||||
edges[0].anchor_triplet = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT |
|
.negative_axis = &usable_area->height,
|
||||||
ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT |
|
.margin = margin_top,
|
||||||
ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP;
|
},
|
||||||
edges[0].positive_axis = &usable_area->y;
|
{ // Bottom
|
||||||
edges[0].negative_axis = &usable_area->height;
|
.singular_anchor = ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM,
|
||||||
edges[0].margin = margin_top;
|
.anchor_triplet = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT |
|
||||||
|
ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT |
|
||||||
// Bottom
|
ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM,
|
||||||
edges[1].singular_anchor = ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM;
|
.positive_axis = NULL,
|
||||||
edges[1].anchor_triplet = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT |
|
.negative_axis = &usable_area->height,
|
||||||
ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT |
|
.margin = margin_bottom,
|
||||||
ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM;
|
},
|
||||||
edges[1].positive_axis = NULL;
|
{ // Left
|
||||||
edges[1].negative_axis = &usable_area->height;
|
.singular_anchor = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT,
|
||||||
edges[1].margin = margin_bottom;
|
.anchor_triplet = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT |
|
||||||
|
ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP |
|
||||||
// Left
|
ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM,
|
||||||
edges[2].singular_anchor = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT;
|
.positive_axis = &usable_area->x,
|
||||||
edges[2].anchor_triplet = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT |
|
.negative_axis = &usable_area->width,
|
||||||
ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP |
|
.margin = margin_left,
|
||||||
ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM;
|
},
|
||||||
edges[2].positive_axis = &usable_area->x;
|
{ // Right
|
||||||
edges[2].negative_axis = &usable_area->width;
|
.singular_anchor = ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT,
|
||||||
edges[2].margin = margin_left;
|
.anchor_triplet = ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT |
|
||||||
|
ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP |
|
||||||
// Right
|
ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM,
|
||||||
edges[3].singular_anchor = ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT;
|
.positive_axis = NULL,
|
||||||
edges[3].anchor_triplet = ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT |
|
.negative_axis = &usable_area->width,
|
||||||
ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP |
|
.margin = margin_right,
|
||||||
ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM;
|
}
|
||||||
edges[3].positive_axis = NULL;
|
};
|
||||||
edges[3].negative_axis = &usable_area->width;
|
|
||||||
edges[3].margin = margin_right;
|
|
||||||
|
|
||||||
for (size_t i = 0; i < LENGTH(edges); ++i) {
|
for (size_t i = 0; i < LENGTH(edges); ++i) {
|
||||||
if ((anchor == edges[i].singular_anchor || anchor == edges[i].anchor_triplet)
|
if ((anchor == edges[i].singular_anchor || anchor == edges[i].anchor_triplet)
|
||||||
&& exclusive + edges[i].margin > 0) {
|
&& exclusive + edges[i].margin > 0) {
|
||||||
|
@ -574,9 +571,10 @@ arrangelayer(Monitor *m, struct wl_list *list, struct wlr_box *usable_area, int
|
||||||
}
|
}
|
||||||
layersurface->geo = box;
|
layersurface->geo = box;
|
||||||
|
|
||||||
applyexclusive(usable_area, state->anchor, state->exclusive_zone,
|
if (state->exclusive_zone > 0)
|
||||||
state->margin.top, state->margin.right,
|
applyexclusive(usable_area, state->anchor, state->exclusive_zone,
|
||||||
state->margin.bottom, state->margin.left);
|
state->margin.top, state->margin.right,
|
||||||
|
state->margin.bottom, state->margin.left);
|
||||||
wlr_layer_surface_v1_configure(wlr_layer_surface, box.width, box.height);
|
wlr_layer_surface_v1_configure(wlr_layer_surface, box.width, box.height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue