diff options
-rw-r--r-- | include/wlr/types/wlr_xdg_shell_v6.h | 63 | ||||
-rw-r--r-- | types/wlr_xdg_shell_v6.c | 94 |
2 files changed, 51 insertions, 106 deletions
diff --git a/include/wlr/types/wlr_xdg_shell_v6.h b/include/wlr/types/wlr_xdg_shell_v6.h index 72d1850e..04c7e450 100644 --- a/include/wlr/types/wlr_xdg_shell_v6.h +++ b/include/wlr/types/wlr_xdg_shell_v6.h @@ -4,6 +4,7 @@ #include <wayland-server.h> #include <wlr/types/wlr_box.h> #include <wlr/types/wlr_seat.h> +#include "xdg-shell-unstable-v6-protocol.h" struct wlr_xdg_shell_v6 { struct wl_global *wl_global; @@ -32,67 +33,11 @@ struct wlr_xdg_client_v6 { struct wl_event_source *ping_timer; }; -enum wlr_positioner_v6_anchor { - /** - * the center of the anchor rectangle - */ - WLR_POSITIONER_V6_ANCHOR_NONE = 0, - /** - * the top edge of the anchor rectangle - */ - WLR_POSITIONER_V6_ANCHOR_TOP = 1, - /** - * the bottom edge of the anchor rectangle - */ - WLR_POSITIONER_V6_ANCHOR_BOTTOM = 2, - /** - * the left edge of the anchor rectangle - */ - WLR_POSITIONER_V6_ANCHOR_LEFT = 4, - /** - * the right edge of the anchor rectangle - */ - WLR_POSITIONER_V6_ANCHOR_RIGHT = 8, -}; - -enum wlr_positioner_v6_gravity { - /** - * center over the anchor edge - */ - WLR_POSITIONER_V6_GRAVITY_NONE = 0, - /** - * position above the anchor edge - */ - WLR_POSITIONER_V6_GRAVITY_TOP = 1, - /** - * position below the anchor edge - */ - WLR_POSITIONER_V6_GRAVITY_BOTTOM = 2, - /** - * position to the left of the anchor edge - */ - WLR_POSITIONER_V6_GRAVITY_LEFT = 4, - /** - * position to the right of the anchor edge - */ - WLR_POSITIONER_V6_GRAVITY_RIGHT = 8, -}; - -enum wlr_positioner_v6_constraint_adjustment { - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_NONE = 0, - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_SLIDE_X = 1, - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_SLIDE_Y = 2, - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_X = 4, - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_Y = 8, - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_X = 16, - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_Y = 32, -}; - struct wlr_xdg_positioner_v6 { struct wlr_box anchor_rect; - enum wlr_positioner_v6_anchor anchor; - enum wlr_positioner_v6_gravity gravity; - enum wlr_positioner_v6_constraint_adjustment constraint_adjustment; + enum zxdg_positioner_v6_anchor anchor; + enum zxdg_positioner_v6_gravity gravity; + enum zxdg_positioner_v6_constraint_adjustment constraint_adjustment; struct { int32_t width, height; diff --git a/types/wlr_xdg_shell_v6.c b/types/wlr_xdg_shell_v6.c index 85ced7bd..2a780a37 100644 --- a/types/wlr_xdg_shell_v6.c +++ b/types/wlr_xdg_shell_v6.c @@ -469,7 +469,7 @@ struct wlr_box wlr_xdg_positioner_v6_get_geometry(struct wlr_xdg_positioner_v6 * } if (positioner->constraint_adjustment == - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_NONE) { + ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_NONE) { return geometry; } @@ -1631,38 +1631,38 @@ struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6_popup_at( void wlr_xdg_popup_v6_get_anchor_point(struct wlr_xdg_popup_v6 *popup, int *root_sx, int *root_sy) { struct wlr_box rect = popup->positioner.anchor_rect; - enum wlr_positioner_v6_anchor anchor = popup->positioner.anchor; + enum zxdg_positioner_v6_anchor anchor = popup->positioner.anchor; int sx = 0, sy = 0; - if (anchor == WLR_POSITIONER_V6_ANCHOR_NONE) { + if (anchor == ZXDG_POSITIONER_V6_ANCHOR_NONE) { sx = (rect.x + rect.width) / 2; sy = (rect.y + rect.height) / 2; - } else if (anchor == WLR_POSITIONER_V6_ANCHOR_TOP) { + } else if (anchor == ZXDG_POSITIONER_V6_ANCHOR_TOP) { sx = (rect.x + rect.width) / 2; sy = rect.y; - } else if (anchor == WLR_POSITIONER_V6_ANCHOR_BOTTOM) { + } else if (anchor == ZXDG_POSITIONER_V6_ANCHOR_BOTTOM) { sx = (rect.x + rect.width) / 2; sy = rect.y + rect.height; - } else if (anchor == WLR_POSITIONER_V6_ANCHOR_LEFT) { + } else if (anchor == ZXDG_POSITIONER_V6_ANCHOR_LEFT) { sx = rect.x; sy = (rect.y + rect.height) / 2; - } else if (anchor == WLR_POSITIONER_V6_ANCHOR_RIGHT) { + } else if (anchor == ZXDG_POSITIONER_V6_ANCHOR_RIGHT) { sx = rect.x + rect.width; sy = (rect.y + rect.height) / 2; - } else if (anchor == (WLR_POSITIONER_V6_ANCHOR_TOP | - WLR_POSITIONER_V6_ANCHOR_LEFT)) { + } else if (anchor == (ZXDG_POSITIONER_V6_ANCHOR_TOP | + ZXDG_POSITIONER_V6_ANCHOR_LEFT)) { sx = rect.x; sy = rect.y; - } else if (anchor == (WLR_POSITIONER_V6_ANCHOR_TOP | - WLR_POSITIONER_V6_ANCHOR_RIGHT)) { + } else if (anchor == (ZXDG_POSITIONER_V6_ANCHOR_TOP | + ZXDG_POSITIONER_V6_ANCHOR_RIGHT)) { sx = rect.x + rect.width; sy = rect.y; - } else if (anchor == (WLR_POSITIONER_V6_ANCHOR_BOTTOM | - WLR_POSITIONER_V6_ANCHOR_LEFT)) { + } else if (anchor == (ZXDG_POSITIONER_V6_ANCHOR_BOTTOM | + ZXDG_POSITIONER_V6_ANCHOR_LEFT)) { sx = rect.x; sy = rect.y + rect.height; - } else if (anchor == (WLR_POSITIONER_V6_ANCHOR_BOTTOM | - WLR_POSITIONER_V6_ANCHOR_RIGHT)) { + } else if (anchor == (ZXDG_POSITIONER_V6_ANCHOR_BOTTOM | + ZXDG_POSITIONER_V6_ANCHOR_RIGHT)) { sx = rect.x + rect.width; sy = rect.y + rect.height; } @@ -1722,11 +1722,11 @@ static bool wlr_xdg_popup_v6_unconstrain_flip(struct wlr_xdg_popup_v6 *popup, bool flip_x = offset_x && (popup->positioner.constraint_adjustment & - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_X); + ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_X); bool flip_y = offset_y && (popup->positioner.constraint_adjustment & - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_Y); + ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_FLIP_Y); if (flip_x) { wlr_positioner_v6_invert_x(&popup->positioner); @@ -1770,11 +1770,11 @@ static bool wlr_xdg_popup_v6_unconstrain_slide(struct wlr_xdg_popup_v6 *popup, bool slide_x = offset_x && (popup->positioner.constraint_adjustment & - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_SLIDE_X); + ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_SLIDE_X); bool slide_y = offset_x && (popup->positioner.constraint_adjustment & - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_SLIDE_Y); + ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_SLIDE_Y); if (slide_x) { popup->geometry.x += offset_x; @@ -1811,11 +1811,11 @@ static bool wlr_xdg_popup_v6_unconstrain_resize(struct wlr_xdg_popup_v6 *popup, bool resize_x = offset_x && (popup->positioner.constraint_adjustment & - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_X); + ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_X); bool resize_y = offset_x && (popup->positioner.constraint_adjustment & - WLR_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_Y); + ZXDG_POSITIONER_V6_CONSTRAINT_ADJUSTMENT_RESIZE_Y); if (resize_x) { popup->geometry.width -= offset_x; @@ -1843,38 +1843,38 @@ void wlr_xdg_popup_v6_unconstrain_from_box(struct wlr_xdg_popup_v6 *popup, } void wlr_positioner_v6_invert_x(struct wlr_xdg_positioner_v6 *positioner) { - if (positioner->anchor & WLR_POSITIONER_V6_ANCHOR_LEFT) { - positioner->anchor &= ~WLR_POSITIONER_V6_ANCHOR_LEFT; - positioner->anchor |= WLR_POSITIONER_V6_ANCHOR_RIGHT; - } else if (positioner->anchor & WLR_POSITIONER_V6_ANCHOR_RIGHT) { - positioner->anchor &= ~WLR_POSITIONER_V6_ANCHOR_RIGHT; - positioner->anchor |= WLR_POSITIONER_V6_ANCHOR_LEFT; + if (positioner->anchor & ZXDG_POSITIONER_V6_ANCHOR_LEFT) { + positioner->anchor &= ~ZXDG_POSITIONER_V6_ANCHOR_LEFT; + positioner->anchor |= ZXDG_POSITIONER_V6_ANCHOR_RIGHT; + } else if (positioner->anchor & ZXDG_POSITIONER_V6_ANCHOR_RIGHT) { + positioner->anchor &= ~ZXDG_POSITIONER_V6_ANCHOR_RIGHT; + positioner->anchor |= ZXDG_POSITIONER_V6_ANCHOR_LEFT; } - if (positioner->gravity & WLR_POSITIONER_V6_GRAVITY_RIGHT) { - positioner->gravity &= ~WLR_POSITIONER_V6_GRAVITY_RIGHT; - positioner->gravity |= WLR_POSITIONER_V6_GRAVITY_LEFT; - } else if (positioner->gravity & WLR_POSITIONER_V6_GRAVITY_LEFT) { - positioner->gravity &= ~WLR_POSITIONER_V6_GRAVITY_LEFT; - positioner->gravity |= WLR_POSITIONER_V6_GRAVITY_RIGHT; + if (positioner->gravity & ZXDG_POSITIONER_V6_GRAVITY_RIGHT) { + positioner->gravity &= ~ZXDG_POSITIONER_V6_GRAVITY_RIGHT; + positioner->gravity |= ZXDG_POSITIONER_V6_GRAVITY_LEFT; + } else if (positioner->gravity & ZXDG_POSITIONER_V6_GRAVITY_LEFT) { + positioner->gravity &= ~ZXDG_POSITIONER_V6_GRAVITY_LEFT; + positioner->gravity |= ZXDG_POSITIONER_V6_GRAVITY_RIGHT; } } void wlr_positioner_v6_invert_y( struct wlr_xdg_positioner_v6 *positioner) { - if (positioner->anchor & WLR_POSITIONER_V6_ANCHOR_TOP) { - positioner->anchor &= ~WLR_POSITIONER_V6_ANCHOR_TOP; - positioner->anchor |= WLR_POSITIONER_V6_ANCHOR_BOTTOM; - } else if (positioner->anchor & WLR_POSITIONER_V6_ANCHOR_BOTTOM) { - positioner->anchor &= ~WLR_POSITIONER_V6_ANCHOR_BOTTOM; - positioner->anchor |= WLR_POSITIONER_V6_ANCHOR_TOP; - } - - if (positioner->gravity & WLR_POSITIONER_V6_GRAVITY_TOP) { - positioner->gravity &= ~WLR_POSITIONER_V6_GRAVITY_TOP; - positioner->gravity |= WLR_POSITIONER_V6_GRAVITY_BOTTOM; - } else if (positioner->gravity & WLR_POSITIONER_V6_GRAVITY_BOTTOM) { - positioner->gravity &= ~WLR_POSITIONER_V6_GRAVITY_BOTTOM; - positioner->gravity |= WLR_POSITIONER_V6_GRAVITY_TOP; + if (positioner->anchor & ZXDG_POSITIONER_V6_ANCHOR_TOP) { + positioner->anchor &= ~ZXDG_POSITIONER_V6_ANCHOR_TOP; + positioner->anchor |= ZXDG_POSITIONER_V6_ANCHOR_BOTTOM; + } else if (positioner->anchor & ZXDG_POSITIONER_V6_ANCHOR_BOTTOM) { + positioner->anchor &= ~ZXDG_POSITIONER_V6_ANCHOR_BOTTOM; + positioner->anchor |= ZXDG_POSITIONER_V6_ANCHOR_TOP; + } + + if (positioner->gravity & ZXDG_POSITIONER_V6_GRAVITY_TOP) { + positioner->gravity &= ~ZXDG_POSITIONER_V6_GRAVITY_TOP; + positioner->gravity |= ZXDG_POSITIONER_V6_GRAVITY_BOTTOM; + } else if (positioner->gravity & ZXDG_POSITIONER_V6_GRAVITY_BOTTOM) { + positioner->gravity &= ~ZXDG_POSITIONER_V6_GRAVITY_BOTTOM; + positioner->gravity |= ZXDG_POSITIONER_V6_GRAVITY_TOP; } } |