From 2d98179b312f6d305168bb54f711db4fed57607a Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Fri, 31 Dec 2021 02:44:25 +0000 Subject: [PATCH] xdg: Implement request_minimize Signed-off-by: Joshua Ashton --- include/labwc.h | 1 + src/xdg.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/labwc.h b/include/labwc.h index 8b960a56..73a9479b 100644 --- a/include/labwc.h +++ b/include/labwc.h @@ -277,6 +277,7 @@ struct view { struct wl_listener request_move; struct wl_listener request_resize; struct wl_listener request_configure; /* xwayland only */ + struct wl_listener request_minimize; struct wl_listener request_maximize; struct wl_listener request_fullscreen; struct wl_listener set_title; diff --git a/src/xdg.c b/src/xdg.c index 25073345..e241e031 100644 --- a/src/xdg.c +++ b/src/xdg.c @@ -135,6 +135,16 @@ handle_request_resize(struct wl_listener *listener, void *data) interactive_begin(view, LAB_INPUT_STATE_RESIZE, event->edges); } +static void +handle_request_minimize(struct wl_listener *listener, void *data) +{ + struct view *view = wl_container_of(listener, view, request_minimize); + struct wlr_xdg_surface *surface = data; + if (view) { + view_minimize(view, surface->toplevel->requested.minimized); + } +} + static void handle_request_maximize(struct wl_listener *listener, void *data) { @@ -423,6 +433,8 @@ xdg_surface_new(struct wl_listener *listener, void *data) wl_signal_add(&toplevel->events.request_move, &view->request_move); view->request_resize.notify = handle_request_resize; wl_signal_add(&toplevel->events.request_resize, &view->request_resize); + view->request_minimize.notify = handle_request_minimize; + wl_signal_add(&toplevel->events.request_minimize, &view->request_minimize); view->request_maximize.notify = handle_request_maximize; wl_signal_add(&toplevel->events.request_maximize, &view->request_maximize); view->request_fullscreen.notify = handle_request_fullscreen;