diff options
| author | Stivvo <stivvo01@gmail.com> | 2020-09-05 11:22:24 +0200 | 
|---|---|---|
| committer | Stivvo <stivvo01@gmail.com> | 2020-09-05 11:22:24 +0200 | 
| commit | 621d4c9173af194f703a6f197a50e597a8a20498 (patch) | |
| tree | a4a9937f9a22bb6af49dc969ba1e50a39202fb30 | |
| parent | d9cf3e064c0972102921dae2280fff1c5272b435 (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 '')
| -rw-r--r-- | config.def.h | 1 | ||||
| -rw-r--r-- | dwl.c | 21 | 
2 files changed, 19 insertions, 3 deletions
| diff --git a/config.def.h b/config.def.h index 53021cf..d821a96 100644 --- a/config.def.h +++ b/config.def.h @@ -75,6 +75,7 @@ static const Key keys[] = {  	{ MODKEY,                    XKB_KEY_m,          setlayout,      {.v = &layouts[2]} },  	{ MODKEY,                    XKB_KEY_space,      setlayout,      {0} },  	{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space,      togglefloating, {0} }, +	{ MODKEY, 					 XKB_KEY_e,    		togglefullscreen, {0} },  	{ MODKEY,                    XKB_KEY_0,          view,           {.ui = ~0} },  	{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_parenright, tag,            {.ui = ~0} },  	{ MODKEY,                    XKB_KEY_comma,      focusmon,       {.i = -1} }, @@ -232,6 +232,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); @@ -242,6 +243,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 unmapnotify(struct wl_listener *listener, void *data); @@ -696,10 +698,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) @@ -720,6 +728,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)  { | 
