mirror of
https://codeberg.org/dwl/dwl.git
synced 2024-12-27 03:36:31 +00:00
Toggle fullscreen on all clients
mod+e allows to toggle fullscreen any client, even those who don't support it themselves
This commit is contained in:
parent
d41cc60ec1
commit
f125e1b9a4
2 changed files with 19 additions and 3 deletions
|
@ -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} },
|
||||
|
|
21
dwl.c
21
dwl.c
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue