From 0f04c76387f74827931db0c3692fbdc2f50fa8d8 Mon Sep 17 00:00:00 2001 From: Stivvo Date: Fri, 4 Sep 2020 12:44:09 +0200 Subject: Basic fullscreen --- dwl.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'dwl.c') diff --git a/dwl.c b/dwl.c index 924823b..4c97cc4 100644 --- a/dwl.c +++ b/dwl.c @@ -102,6 +102,7 @@ typedef struct { struct wl_listener map; struct wl_listener unmap; struct wl_listener destroy; + struct wl_listener fullscreen; struct wlr_box geom; /* layout-relative, includes border */ Monitor *mon; #ifdef XWAYLAND @@ -222,6 +223,7 @@ static void cursorframe(struct wl_listener *listener, void *data); static void destroylayersurfacenotify(struct wl_listener *listener, void *data); static void destroynotify(struct wl_listener *listener, void *data); static void destroyxdeco(struct wl_listener *listener, void *data); +static void fullscreenotify(struct wl_listener *listener, void *data); static Monitor *dirtomon(int dir); static void focusclient(Client *c, int lift); static void focusmon(const Arg *arg); @@ -909,6 +911,9 @@ createnotify(struct wl_listener *listener, void *data) wl_signal_add(&xdg_surface->events.unmap, &c->unmap); c->destroy.notify = destroynotify; wl_signal_add(&xdg_surface->events.destroy, &c->destroy); + + wl_signal_add(&xdg_surface->toplevel->events.request_fullscreen, &c->fullscreen); + c->fullscreen.notify = fullscreenotify; } void @@ -1037,6 +1042,12 @@ destroyxdeco(struct wl_listener *listener, void *data) free(d); } +void +fullscreenotify(struct wl_listener *listener, void *data) { + Client *c = wl_container_of(listener, c, fullscreen); + wlr_xdg_toplevel_set_fullscreen(c->surface.xdg, true); +} + Monitor * dirtomon(int dir) { -- cgit v1.2.3