diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-06-26 14:24:15 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-06-26 14:24:15 +1000 |
commit | e8001e6fbe827f6ae6842cf9f221edb322bb570e (patch) | |
tree | 806530a903cfb330a1a54b9c9366f21a01133a38 /sway/desktop/xwayland.c | |
parent | Rename view's free callback to destroy (diff) | |
download | sway-e8001e6fbe827f6ae6842cf9f221edb322bb570e.tar.gz sway-e8001e6fbe827f6ae6842cf9f221edb322bb570e.tar.zst sway-e8001e6fbe827f6ae6842cf9f221edb322bb570e.zip |
Damage output when views toggle fullscreen
Also add workspace to the transaction when a view maps in fullscreen
mode.
Diffstat (limited to 'sway/desktop/xwayland.c')
-rw-r--r-- | sway/desktop/xwayland.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index eea8420d..720ea2fd 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c | |||
@@ -286,8 +286,11 @@ static void handle_map(struct wl_listener *listener, void *data) { | |||
286 | 286 | ||
287 | if (xsurface->fullscreen) { | 287 | if (xsurface->fullscreen) { |
288 | view_set_fullscreen(view, true); | 288 | view_set_fullscreen(view, true); |
289 | struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE); | ||
290 | arrange_and_commit(ws); | ||
291 | } else { | ||
292 | arrange_and_commit(view->swayc->parent); | ||
289 | } | 293 | } |
290 | arrange_and_commit(view->swayc->parent); | ||
291 | } | 294 | } |
292 | 295 | ||
293 | static void handle_destroy(struct wl_listener *listener, void *data) { | 296 | static void handle_destroy(struct wl_listener *listener, void *data) { |
@@ -337,7 +340,12 @@ static void handle_request_fullscreen(struct wl_listener *listener, void *data) | |||
337 | return; | 340 | return; |
338 | } | 341 | } |
339 | view_set_fullscreen(view, xsurface->fullscreen); | 342 | view_set_fullscreen(view, xsurface->fullscreen); |
340 | arrange_and_commit(view->swayc); | 343 | |
344 | struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE); | ||
345 | struct sway_transaction *transaction = transaction_create(); | ||
346 | arrange_windows(ws, transaction); | ||
347 | transaction_add_damage(transaction, container_get_box(ws->parent)); | ||
348 | transaction_commit(transaction); | ||
341 | } | 349 | } |
342 | 350 | ||
343 | static void handle_set_title(struct wl_listener *listener, void *data) { | 351 | static void handle_set_title(struct wl_listener *listener, void *data) { |