aboutsummaryrefslogtreecommitdiffstats
path: root/sway/desktop
diff options
context:
space:
mode:
authorLibravatar Thomas Hebb <tommyhebb@gmail.com>2022-02-21 23:07:09 -0800
committerLibravatar Simon Ser <contact@emersion.fr>2022-02-24 12:12:12 +0100
commit0ee54a524329ab8d3db7dbe8286dc97b0bf57bed (patch)
treeacab9a691395d9e8dd5cb965e38c0b7bbd522c62 /sway/desktop
parentRemove some erroneous apostrophes in comments (diff)
downloadsway-0ee54a524329ab8d3db7dbe8286dc97b0bf57bed.tar.gz
sway-0ee54a524329ab8d3db7dbe8286dc97b0bf57bed.tar.zst
sway-0ee54a524329ab8d3db7dbe8286dc97b0bf57bed.zip
Don't enter seatop_move_floating when fullscreen
Currently, a floating window that's been fullscreened can send us xdg_toplevel::move, and we'll enter seatop_move_floating, which lets us drag the surface around while it's fullscreen. We don't want this--fullscreen surfaces should always be aligned to the screen--so add the same check that seatop_default already does when entering this mode. Tested with Weston's weston-fullscreen demo, which sends a move request if you click anywhere on its surface.
Diffstat (limited to 'sway/desktop')
-rw-r--r--sway/desktop/xdg_shell.c3
-rw-r--r--sway/desktop/xwayland.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c
index 6af67207..51168f4c 100644
--- a/sway/desktop/xdg_shell.c
+++ b/sway/desktop/xdg_shell.c
@@ -360,7 +360,8 @@ static void handle_request_move(struct wl_listener *listener, void *data) {
360 struct sway_xdg_shell_view *xdg_shell_view = 360 struct sway_xdg_shell_view *xdg_shell_view =
361 wl_container_of(listener, xdg_shell_view, request_move); 361 wl_container_of(listener, xdg_shell_view, request_move);
362 struct sway_view *view = &xdg_shell_view->view; 362 struct sway_view *view = &xdg_shell_view->view;
363 if (!container_is_floating(view->container)) { 363 if (!container_is_floating(view->container) ||
364 view->container->pending.fullscreen_mode) {
364 return; 365 return;
365 } 366 }
366 struct wlr_xdg_toplevel_move_event *e = data; 367 struct wlr_xdg_toplevel_move_event *e = data;
diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c
index 2f11b5fc..483398e9 100644
--- a/sway/desktop/xwayland.c
+++ b/sway/desktop/xwayland.c
@@ -594,7 +594,8 @@ static void handle_request_move(struct wl_listener *listener, void *data) {
594 if (!xsurface->mapped) { 594 if (!xsurface->mapped) {
595 return; 595 return;
596 } 596 }
597 if (!container_is_floating(view->container)) { 597 if (!container_is_floating(view->container) ||
598 view->container->pending.fullscreen_mode) {
598 return; 599 return;
599 } 600 }
600 struct sway_seat *seat = input_manager_current_seat(); 601 struct sway_seat *seat = input_manager_current_seat();