diff options
author | Ronan Pigott <rpigott@berkeley.edu> | 2020-07-12 19:53:16 -0700 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2020-07-14 15:46:02 +0200 |
commit | 4dd46f06acc520449b980a5ea52be544cc5bfb6d (patch) | |
tree | eca9a2a9381de3daccd2871f8fe4bd10177e70a7 | |
parent | Assert output is found before removing from list (diff) | |
download | sway-4dd46f06acc520449b980a5ea52be544cc5bfb6d.tar.gz sway-4dd46f06acc520449b980a5ea52be544cc5bfb6d.tar.zst sway-4dd46f06acc520449b980a5ea52be544cc5bfb6d.zip |
xdg_shell: schedule configure on maximize requests
-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 3437cc07..03f37241 100644 --- a/sway/desktop/xdg_shell.c +++ b/sway/desktop/xdg_shell.c | |||
@@ -369,6 +369,11 @@ static void handle_request_fullscreen(struct wl_listener *listener, void *data) | |||
369 | transaction_commit_dirty(); | 369 | transaction_commit_dirty(); |
370 | } | 370 | } |
371 | 371 | ||
372 | static void handle_request_maximize(struct wl_listener *listener, void *data) { | ||
373 | struct wlr_xdg_surface *surface = data; | ||
374 | wlr_xdg_surface_schedule_configure(surface); | ||
375 | } | ||
376 | |||
372 | static void handle_request_move(struct wl_listener *listener, void *data) { | 377 | static void handle_request_move(struct wl_listener *listener, void *data) { |
373 | struct sway_xdg_shell_view *xdg_shell_view = | 378 | struct sway_xdg_shell_view *xdg_shell_view = |
374 | wl_container_of(listener, xdg_shell_view, request_move); | 379 | wl_container_of(listener, xdg_shell_view, request_move); |
@@ -411,6 +416,7 @@ static void handle_unmap(struct wl_listener *listener, void *data) { | |||
411 | wl_list_remove(&xdg_shell_view->commit.link); | 416 | wl_list_remove(&xdg_shell_view->commit.link); |
412 | wl_list_remove(&xdg_shell_view->new_popup.link); | 417 | wl_list_remove(&xdg_shell_view->new_popup.link); |
413 | wl_list_remove(&xdg_shell_view->request_fullscreen.link); | 418 | wl_list_remove(&xdg_shell_view->request_fullscreen.link); |
419 | wl_list_remove(&xdg_shell_view->request_maximize.link); | ||
414 | wl_list_remove(&xdg_shell_view->request_move.link); | 420 | wl_list_remove(&xdg_shell_view->request_move.link); |
415 | wl_list_remove(&xdg_shell_view->request_resize.link); | 421 | wl_list_remove(&xdg_shell_view->request_resize.link); |
416 | wl_list_remove(&xdg_shell_view->set_title.link); | 422 | wl_list_remove(&xdg_shell_view->set_title.link); |
@@ -459,6 +465,10 @@ static void handle_map(struct wl_listener *listener, void *data) { | |||
459 | wl_signal_add(&xdg_surface->toplevel->events.request_fullscreen, | 465 | wl_signal_add(&xdg_surface->toplevel->events.request_fullscreen, |
460 | &xdg_shell_view->request_fullscreen); | 466 | &xdg_shell_view->request_fullscreen); |
461 | 467 | ||
468 | xdg_shell_view->request_maximize.notify = handle_request_maximize; | ||
469 | wl_signal_add(&xdg_surface->toplevel->events.request_maximize, | ||
470 | &xdg_shell_view->request_maximize); | ||
471 | |||
462 | xdg_shell_view->request_move.notify = handle_request_move; | 472 | xdg_shell_view->request_move.notify = handle_request_move; |
463 | wl_signal_add(&xdg_surface->toplevel->events.request_move, | 473 | wl_signal_add(&xdg_surface->toplevel->events.request_move, |
464 | &xdg_shell_view->request_move); | 474 | &xdg_shell_view->request_move); |