diff options
author | Stivvo <stivvo01@gmail.com> | 2020-09-04 12:44:09 +0200 |
---|---|---|
committer | Stivvo <stivvo01@gmail.com> | 2020-09-04 12:44:09 +0200 |
commit | 60f0b667b195e7479da944fa2b960c3377d4f144 (patch) | |
tree | 03eca34d814b838768e87cff6f1fd802bb8b6c31 /dwl.c | |
parent | 44ef698d6ef48a41b0df7c4c47d8b880efdbdf33 (diff) |
Basic fullscreen
Diffstat (limited to 'dwl.c')
-rw-r--r-- | dwl.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -96,6 +96,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 @@ -192,6 +193,7 @@ static void createxdeco(struct wl_listener *listener, void *data); static void cursorframe(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 *old, Client *c, int lift); static void focusmon(const Arg *arg); @@ -598,6 +600,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 @@ -664,6 +669,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) { |