diff options
Diffstat (limited to 'sway/desktop/xdg_shell_v6.c')
-rw-r--r-- | sway/desktop/xdg_shell_v6.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/sway/desktop/xdg_shell_v6.c b/sway/desktop/xdg_shell_v6.c index 7ff4c4de..5ac589cf 100644 --- a/sway/desktop/xdg_shell_v6.c +++ b/sway/desktop/xdg_shell_v6.c | |||
@@ -339,6 +339,18 @@ static void handle_request_fullscreen(struct wl_listener *listener, void *data) | |||
339 | return; | 339 | return; |
340 | } | 340 | } |
341 | 341 | ||
342 | if (e->fullscreen && e->output && e->output->data) { | ||
343 | struct sway_output *output = e->output->data; | ||
344 | struct sway_workspace *ws = output_get_active_workspace(output); | ||
345 | if (ws && !container_is_scratchpad_hidden(view->container)) { | ||
346 | if (container_is_floating(view->container)) { | ||
347 | workspace_add_floating(ws, view->container); | ||
348 | } else { | ||
349 | workspace_add_tiling(ws, view->container); | ||
350 | } | ||
351 | } | ||
352 | } | ||
353 | |||
342 | container_set_fullscreen(view->container, e->fullscreen); | 354 | container_set_fullscreen(view->container, e->fullscreen); |
343 | 355 | ||
344 | arrange_root(); | 356 | arrange_root(); |
@@ -411,7 +423,9 @@ static void handle_map(struct wl_listener *listener, void *data) { | |||
411 | == WLR_SERVER_DECORATION_MANAGER_MODE_CLIENT; | 423 | == WLR_SERVER_DECORATION_MANAGER_MODE_CLIENT; |
412 | 424 | ||
413 | view_map(view, view->wlr_xdg_surface_v6->surface, | 425 | view_map(view, view->wlr_xdg_surface_v6->surface, |
414 | xdg_surface->toplevel->client_pending.fullscreen, csd); | 426 | xdg_surface->toplevel->client_pending.fullscreen, |
427 | xdg_surface->toplevel->client_pending.fullscreen_output, | ||
428 | csd); | ||
415 | 429 | ||
416 | transaction_commit_dirty(); | 430 | transaction_commit_dirty(); |
417 | 431 | ||