aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Ronan Pigott <rpigott@berkeley.edu>2020-07-12 19:53:16 -0700
committerLibravatar Simon Ser <contact@emersion.fr>2020-07-14 15:46:02 +0200
commit4dd46f06acc520449b980a5ea52be544cc5bfb6d (patch)
treeeca9a2a9381de3daccd2871f8fe4bd10177e70a7
parentAssert output is found before removing from list (diff)
downloadsway-4dd46f06acc520449b980a5ea52be544cc5bfb6d.tar.gz
sway-4dd46f06acc520449b980a5ea52be544cc5bfb6d.tar.zst
sway-4dd46f06acc520449b980a5ea52be544cc5bfb6d.zip
xdg_shell: schedule configure on maximize requests
-rw-r--r--sway/desktop/xdg_shell.c10
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
372static 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
372static void handle_request_move(struct wl_listener *listener, void *data) { 377static 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);