mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-21 14:42:25 +00:00
util/box: Introduce wlr_box_contains_box
This commit is contained in:
parent
8730ca9661
commit
4b4ca11f6f
@ -71,6 +71,14 @@ bool wlr_box_intersection(struct wlr_box *dest, const struct wlr_box *box_a,
|
|||||||
*/
|
*/
|
||||||
bool wlr_box_contains_point(const struct wlr_box *box, double x, double y);
|
bool wlr_box_contains_point(const struct wlr_box *box, double x, double y);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verifies that a box is fully contained within another box.
|
||||||
|
*
|
||||||
|
* Returns true if the "smaller" box is fully contained within the "bigger" box.
|
||||||
|
* If either of the boxes are empty, false is returned.
|
||||||
|
*/
|
||||||
|
bool wlr_box_contains_box(const struct wlr_box *bigger, const struct wlr_box *smaller);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks whether a box is empty or not.
|
* Checks whether a box is empty or not.
|
||||||
*
|
*
|
||||||
|
11
util/box.c
11
util/box.c
@ -79,6 +79,17 @@ bool wlr_box_contains_point(const struct wlr_box *box, double x, double y) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wlr_box_contains_box(const struct wlr_box *bigger, const struct wlr_box *smaller) {
|
||||||
|
if (wlr_box_empty(bigger) || wlr_box_empty(smaller)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return smaller->x >= bigger->x &&
|
||||||
|
smaller->x + smaller->width <= bigger->x + bigger->width &&
|
||||||
|
smaller->y >= bigger->y &&
|
||||||
|
smaller->y + smaller->height <= bigger->y + bigger->height;
|
||||||
|
}
|
||||||
|
|
||||||
void wlr_box_transform(struct wlr_box *dest, const struct wlr_box *box,
|
void wlr_box_transform(struct wlr_box *dest, const struct wlr_box *box,
|
||||||
enum wl_output_transform transform, int width, int height) {
|
enum wl_output_transform transform, int width, int height) {
|
||||||
struct wlr_box src = {0};
|
struct wlr_box src = {0};
|
||||||
|
Loading…
Reference in New Issue
Block a user