diff options
author | Ronan Pigott <rpigott@berkeley.edu> | 2020-07-12 19:53:16 -0700 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2020-07-15 19:27:13 +0200 |
commit | 28bcb1e6f259fc6b73faa7f32105779de1d4b4b2 (patch) | |
tree | 1c852d8c46a502187bbd05b1e469861235713cde /sway/desktop/xdg_shell.c | |
parent | Assert output is found before removing from list (diff) | |
download | sway-28bcb1e6f259fc6b73faa7f32105779de1d4b4b2.tar.gz sway-28bcb1e6f259fc6b73faa7f32105779de1d4b4b2.tar.zst sway-28bcb1e6f259fc6b73faa7f32105779de1d4b4b2.zip |
xdg_shell: schedule configure on maximize requests
(cherry picked from commit 4dd46f06acc520449b980a5ea52be544cc5bfb6d)
Diffstat (limited to 'sway/desktop/xdg_shell.c')
-rw-r--r-- | sway/desktop/xdg_shell.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c index df751ef6..b9f39833 100644 --- a/sway/desktop/xdg_shell.c +++ b/sway/desktop/xdg_shell.c | |||
@@ -360,6 +360,11 @@ static void handle_request_fullscreen(struct wl_listener *listener, void *data) | |||
360 | transaction_commit_dirty(); | 360 | transaction_commit_dirty(); |
361 | } | 361 | } |
362 | 362 | ||
363 | static void handle_request_maximize(struct wl_listener *listener, void *data) { | ||
364 | struct wlr_xdg_surface *surface = data; | ||
365 | wlr_xdg_surface_schedule_configure(surface); | ||
366 | } | ||
367 | |||
363 | static void handle_request_move(struct wl_listener *listener, void *data) { | 368 | static void handle_request_move(struct wl_listener *listener, void *data) { |
364 | struct sway_xdg_shell_view *xdg_shell_view = | 369 | struct sway_xdg_shell_view *xdg_shell_view = |
365 | wl_container_of(listener, xdg_shell_view, request_move); | 370 | wl_container_of(listener, xdg_shell_view, request_move); |
@@ -402,6 +407,7 @@ static void handle_unmap(struct wl_listener *listener, void *data) { | |||
402 | wl_list_remove(&xdg_shell_view->commit.link); | 407 | wl_list_remove(&xdg_shell_view->commit.link); |
403 | wl_list_remove(&xdg_shell_view->new_popup.link); | 408 | wl_list_remove(&xdg_shell_view->new_popup.link); |
404 | wl_list_remove(&xdg_shell_view->request_fullscreen.link); | 409 | wl_list_remove(&xdg_shell_view->request_fullscreen.link); |
410 | wl_list_remove(&xdg_shell_view->request_maximize.link); | ||
405 | wl_list_remove(&xdg_shell_view->request_move.link); | 411 | wl_list_remove(&xdg_shell_view->request_move.link); |
406 | wl_list_remove(&xdg_shell_view->request_resize.link); | 412 | wl_list_remove(&xdg_shell_view->request_resize.link); |
407 | wl_list_remove(&xdg_shell_view->set_title.link); | 413 | wl_list_remove(&xdg_shell_view->set_title.link); |
@@ -450,6 +456,10 @@ static void handle_map(struct wl_listener *listener, void *data) { | |||
450 | wl_signal_add(&xdg_surface->toplevel->events.request_fullscreen, | 456 | wl_signal_add(&xdg_surface->toplevel->events.request_fullscreen, |
451 | &xdg_shell_view->request_fullscreen); | 457 | &xdg_shell_view->request_fullscreen); |
452 | 458 | ||
459 | xdg_shell_view->request_maximize.notify = handle_request_maximize; | ||
460 | wl_signal_add(&xdg_surface->toplevel->events.request_maximize, | ||
461 | &xdg_shell_view->request_maximize); | ||
462 | |||
453 | xdg_shell_view->request_move.notify = handle_request_move; | 463 | xdg_shell_view->request_move.notify = handle_request_move; |
454 | wl_signal_add(&xdg_surface->toplevel->events.request_move, | 464 | wl_signal_add(&xdg_surface->toplevel->events.request_move, |
455 | &xdg_shell_view->request_move); | 465 | &xdg_shell_view->request_move); |