diff options
Diffstat (limited to 'sway/commands.c')
-rw-r--r-- | sway/commands.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sway/commands.c b/sway/commands.c index 205798ec..74b307e6 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -1349,15 +1349,18 @@ static struct cmd_results *cmd_fullscreen(int argc, char **argv) { | |||
1349 | return error; | 1349 | return error; |
1350 | } | 1350 | } |
1351 | swayc_t *container = get_focused_view(&root_container); | 1351 | swayc_t *container = get_focused_view(&root_container); |
1352 | swayc_t *workspace = swayc_parent_by_type(container, C_WORKSPACE); | ||
1352 | bool current = swayc_is_fullscreen(container); | 1353 | bool current = swayc_is_fullscreen(container); |
1353 | wlc_view_set_state(container->handle, WLC_BIT_FULLSCREEN, !current); | 1354 | wlc_view_set_state(container->handle, WLC_BIT_FULLSCREEN, !current); |
1354 | // Resize workspace if going from fullscreen -> notfullscreen | 1355 | // Resize workspace if going from fullscreen -> notfullscreen |
1355 | // otherwise just resize container | 1356 | // otherwise just resize container |
1356 | if (current) { | 1357 | if (current) { |
1357 | container = swayc_parent_by_type(container, C_WORKSPACE); | 1358 | arrange_windows(workspace, -1, -1); |
1359 | workspace->fullscreen = container; | ||
1360 | } else { | ||
1361 | arrange_windows(container, -1, -1); | ||
1362 | workspace->fullscreen = NULL; | ||
1358 | } | 1363 | } |
1359 | // Only resize container when going into fullscreen | ||
1360 | arrange_windows(container, -1, -1); | ||
1361 | 1364 | ||
1362 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); | 1365 | return cmd_results_new(CMD_SUCCESS, NULL, NULL); |
1363 | } | 1366 | } |