diff options
author | Stivvo <stivvo01@gmail.com> | 2020-09-05 11:22:24 +0200 |
---|---|---|
committer | Guido Cella <guido@guidocella.xyz> | 2020-12-19 18:06:11 +0100 |
commit | f125e1b9a4e05a5282765b0b699f8a097ea65783 (patch) | |
tree | a7efb4fa75377e2b0c1dbf345090417e06e88cec /dwl.c | |
parent | d41cc60ec102d06b6c3e41c587fbb05b3a45e05e (diff) |
Toggle fullscreen on all clients
mod+e allows to toggle fullscreen any client, even those who don't
support it themselves
Diffstat (limited to 'dwl.c')
-rw-r--r-- | dwl.c | 21 |
1 files changed, 18 insertions, 3 deletions
@@ -267,6 +267,7 @@ static void setcursor(struct wl_listener *listener, void *data); static void setpsel(struct wl_listener *listener, void *data); static void setsel(struct wl_listener *listener, void *data); static void setfloating(Client *c, int floating); +static void setfullscreen(Client *c, int fullscreen); static void setlayout(const Arg *arg); static void setmfact(const Arg *arg); static void setmon(Client *c, Monitor *m, unsigned int newtags); @@ -278,6 +279,7 @@ static void tag(const Arg *arg); static void tagmon(const Arg *arg); static void tile(Monitor *m); static void togglefloating(const Arg *arg); +static void togglefullscreen(const Arg *arg); static void toggletag(const Arg *arg); static void toggleview(const Arg *arg); static void unmaplayersurface(LayerSurface *layersurface); @@ -1069,10 +1071,16 @@ destroyxdeco(struct wl_listener *listener, void *data) } void -fullscreenotify(struct wl_listener *listener, void *data) +togglefullscreen(const Arg *arg) { - Client *c = wl_container_of(listener, c, fullscreen); - c->isfullscreen = !c->isfullscreen; + Client *sel = selclient(); + setfullscreen(sel, !sel->isfullscreen); +} + +void +setfullscreen(Client *c, int fullscreen) +{ + c->isfullscreen = fullscreen; #ifdef XWAYLAND if (c->type == X11Managed) @@ -1093,6 +1101,13 @@ fullscreenotify(struct wl_listener *listener, void *data) } } +void +fullscreenotify(struct wl_listener *listener, void *data) +{ + Client *c = wl_container_of(listener, c, fullscreen); + setfullscreen(c, !c->isfullscreen); +} + Monitor * dirtomon(int dir) { |