diff --git a/types/xdg_shell/wlr_xdg_positioner.c b/types/xdg_shell/wlr_xdg_positioner.c index 6f902f92..95d5dbd3 100644 --- a/types/xdg_shell/wlr_xdg_positioner.c +++ b/types/xdg_shell/wlr_xdg_positioner.c @@ -222,20 +222,16 @@ struct wlr_box wlr_xdg_positioner_get_geometry( if (positioner_gravity_has_edge(positioner->gravity, XDG_POSITIONER_GRAVITY_TOP)) { geometry.y -= geometry.height; - } else if (positioner_gravity_has_edge(positioner->gravity, + } else if (!positioner_gravity_has_edge(positioner->gravity, XDG_POSITIONER_GRAVITY_BOTTOM)) { - geometry.y = geometry.y; - } else { geometry.y -= geometry.height / 2; } if (positioner_gravity_has_edge(positioner->gravity, XDG_POSITIONER_GRAVITY_LEFT)) { geometry.x -= geometry.width; - } else if (positioner_gravity_has_edge(positioner->gravity, + } else if (!positioner_gravity_has_edge(positioner->gravity, XDG_POSITIONER_GRAVITY_RIGHT)) { - geometry.x = geometry.x; - } else { geometry.x -= geometry.width / 2; } diff --git a/types/xdg_shell_v6/wlr_xdg_positioner_v6.c b/types/xdg_shell_v6/wlr_xdg_positioner_v6.c index 837f9290..eda19f30 100644 --- a/types/xdg_shell_v6/wlr_xdg_positioner_v6.c +++ b/types/xdg_shell_v6/wlr_xdg_positioner_v6.c @@ -154,17 +154,13 @@ struct wlr_box wlr_xdg_positioner_v6_get_geometry( if (positioner->gravity & ZXDG_POSITIONER_V6_GRAVITY_TOP) { geometry.y -= geometry.height; - } else if (positioner->gravity & ZXDG_POSITIONER_V6_GRAVITY_BOTTOM) { - geometry.y = geometry.y; - } else { + } else if (!(positioner->gravity & ZXDG_POSITIONER_V6_GRAVITY_BOTTOM)) { geometry.y -= geometry.height / 2; } if (positioner->gravity & ZXDG_POSITIONER_V6_GRAVITY_LEFT) { geometry.x -= geometry.width; - } else if (positioner->gravity & ZXDG_POSITIONER_V6_GRAVITY_RIGHT) { - geometry.x = geometry.x; - } else { + } else if (!(positioner->gravity & ZXDG_POSITIONER_V6_GRAVITY_RIGHT)) { geometry.x -= geometry.width / 2; }