shell: block move, rotate, resize in maximized state
To remain consisten with client side window, which blocks moving and
resizing of window in maximized state, we should do so on the compositor
side as well.
(until there is some unmaximize notification from server, which will
allow window to start drawing shadows and revert itself to toplevel
state)
diff --git a/src/shell.c b/src/shell.c
index 565d0e2..d6fc30a 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -1174,7 +1174,8 @@
{
struct weston_resize_grab *resize;
- if (shsurf->type == SHELL_SURFACE_FULLSCREEN)
+ if (shsurf->type == SHELL_SURFACE_FULLSCREEN ||
+ shsurf->type == SHELL_SURFACE_MAXIMIZED)
return 0;
if (edges == 0 || edges > 15 ||
@@ -2387,7 +2388,8 @@
return;
shsurf = get_shell_surface(surface);
- if (shsurf == NULL || shsurf->type == SHELL_SURFACE_FULLSCREEN)
+ if (shsurf == NULL || shsurf->type == SHELL_SURFACE_FULLSCREEN ||
+ shsurf->type == SHELL_SURFACE_MAXIMIZED)
return;
surface_move(shsurf, (struct weston_seat *) seat);
@@ -2406,7 +2408,8 @@
return;
shsurf = get_shell_surface(surface);
- if (!shsurf || shsurf->type == SHELL_SURFACE_FULLSCREEN)
+ if (!shsurf || shsurf->type == SHELL_SURFACE_FULLSCREEN ||
+ shsurf->type == SHELL_SURFACE_MAXIMIZED)
return;
weston_surface_from_global(surface,
@@ -2665,7 +2668,8 @@
return;
surface = get_shell_surface(base_surface);
- if (!surface || surface->type == SHELL_SURFACE_FULLSCREEN)
+ if (!surface || surface->type == SHELL_SURFACE_FULLSCREEN ||
+ surface->type == SHELL_SURFACE_MAXIMIZED)
return;
surface_rotate(surface, seat);