diff options
Diffstat (limited to 'sway/desktop/xdg_shell.c')
-rw-r--r-- | sway/desktop/xdg_shell.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c index 105e77ae..484afd0c 100644 --- a/sway/desktop/xdg_shell.c +++ b/sway/desktop/xdg_shell.c | |||
@@ -221,8 +221,11 @@ static void handle_map(struct wl_listener *listener, void *data) { | |||
221 | 221 | ||
222 | if (xdg_surface->toplevel->client_pending.fullscreen) { | 222 | if (xdg_surface->toplevel->client_pending.fullscreen) { |
223 | view_set_fullscreen(view, true); | 223 | view_set_fullscreen(view, true); |
224 | struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE); | ||
225 | arrange_and_commit(ws); | ||
226 | } else { | ||
227 | arrange_and_commit(view->swayc->parent); | ||
224 | } | 228 | } |
225 | arrange_and_commit(view->swayc->parent); | ||
226 | 229 | ||
227 | xdg_shell_view->commit.notify = handle_commit; | 230 | xdg_shell_view->commit.notify = handle_commit; |
228 | wl_signal_add(&xdg_surface->surface->events.commit, | 231 | wl_signal_add(&xdg_surface->surface->events.commit, |
@@ -269,7 +272,10 @@ static void handle_request_fullscreen(struct wl_listener *listener, void *data) | |||
269 | view_set_fullscreen(view, e->fullscreen); | 272 | view_set_fullscreen(view, e->fullscreen); |
270 | 273 | ||
271 | struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE); | 274 | struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE); |
272 | arrange_and_commit(ws); | 275 | struct sway_transaction *transaction = transaction_create(); |
276 | arrange_windows(ws, transaction); | ||
277 | transaction_add_damage(transaction, container_get_box(ws->parent)); | ||
278 | transaction_commit(transaction); | ||
273 | } | 279 | } |
274 | 280 | ||
275 | void handle_xdg_shell_surface(struct wl_listener *listener, void *data) { | 281 | void handle_xdg_shell_surface(struct wl_listener *listener, void *data) { |