Signed-off-by: Ondřej Majerech <majerec...@gmail.com>
---
 desktop-shell/shell.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index e3abaad..02e180d 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -1884,13 +1884,20 @@ surface_resize(struct shell_surface *shsurf,
               struct weston_seat *seat, uint32_t edges)
 {
        struct weston_resize_grab *resize;
+       const unsigned resize_topbottom =
+               WL_SHELL_SURFACE_RESIZE_TOP | WL_SHELL_SURFACE_RESIZE_BOTTOM;
+       const unsigned resize_leftright =
+               WL_SHELL_SURFACE_RESIZE_LEFT | WL_SHELL_SURFACE_RESIZE_RIGHT;
+       const unsigned resize_any = resize_topbottom | resize_leftright;
 
        if (shsurf->grabbed ||
            shsurf->state.fullscreen || shsurf->state.maximized)
                return 0;
 
-       if (edges == 0 || edges > 15 ||
-           (edges & 3) == 3 || (edges & 12) == 12)
+       /* Check for invalid edge combinations. */
+       if (edges == WL_SHELL_SURFACE_RESIZE_NONE || edges > resize_any ||
+           (edges & resize_topbottom) == resize_topbottom ||
+           (edges & resize_leftright) == resize_leftright)
                return 0;
 
        resize = malloc(sizeof *resize);
-- 
2.0.4

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to