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/xdg_shell_v6.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/xdg_shell_v6.c')
-rw-r--r-- | sway/desktop/xdg_shell_v6.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sway/desktop/xdg_shell_v6.c b/sway/desktop/xdg_shell_v6.c index 19b30604..da2eda7a 100644 --- a/sway/desktop/xdg_shell_v6.c +++ b/sway/desktop/xdg_shell_v6.c | |||
@@ -220,8 +220,11 @@ static void handle_map(struct wl_listener *listener, void *data) { | |||
220 | 220 | ||
221 | if (xdg_surface->toplevel->client_pending.fullscreen) { | 221 | if (xdg_surface->toplevel->client_pending.fullscreen) { |
222 | view_set_fullscreen(view, true); | 222 | view_set_fullscreen(view, true); |
223 | struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE); | ||
224 | arrange_and_commit(ws); | ||
225 | } else { | ||
226 | arrange_and_commit(view->swayc->parent); | ||
223 | } | 227 | } |
224 | arrange_and_commit(view->swayc->parent); | ||
225 | 228 | ||
226 | xdg_shell_v6_view->commit.notify = handle_commit; | 229 | xdg_shell_v6_view->commit.notify = handle_commit; |
227 | wl_signal_add(&xdg_surface->surface->events.commit, | 230 | wl_signal_add(&xdg_surface->surface->events.commit, |
@@ -264,7 +267,10 @@ static void handle_request_fullscreen(struct wl_listener *listener, void *data) | |||
264 | view_set_fullscreen(view, e->fullscreen); | 267 | view_set_fullscreen(view, e->fullscreen); |
265 | 268 | ||
266 | struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE); | 269 | struct sway_container *ws = container_parent(view->swayc, C_WORKSPACE); |
267 | arrange_and_commit(ws); | 270 | struct sway_transaction *transaction = transaction_create(); |
271 | arrange_windows(ws, transaction); | ||
272 | transaction_add_damage(transaction, container_get_box(ws->parent)); | ||
273 | transaction_commit(transaction); | ||
268 | } | 274 | } |
269 | 275 | ||
270 | void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data) { | 276 | void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data) { |