diff options
Diffstat (limited to 'dwl-patches/patches/fakefullscreenclient/fakefullscreenclient.patch')
-rw-r--r-- | dwl-patches/patches/fakefullscreenclient/fakefullscreenclient.patch | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/dwl-patches/patches/fakefullscreenclient/fakefullscreenclient.patch b/dwl-patches/patches/fakefullscreenclient/fakefullscreenclient.patch new file mode 100644 index 0000000..848f350 --- /dev/null +++ b/dwl-patches/patches/fakefullscreenclient/fakefullscreenclient.patch @@ -0,0 +1,87 @@ +From 2ec6d0c668b4daee601337f8da45ccfa3a7d5fc6 Mon Sep 17 00:00:00 2001 +From: choc <notchoc@proton.me> +Date: Fri, 29 Mar 2024 22:50:00 +0800 +Subject: [PATCH] implement fakefullscreenclient + +--- + config.def.h | 1 + + dwl.c | 23 ++++++++++++++++++++++- + 2 files changed, 23 insertions(+), 1 deletion(-) + +diff --git a/config.def.h b/config.def.h +index 9009517..8c220eb 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -137,6 +137,7 @@ static const Key keys[] = { + { MODKEY, XKB_KEY_space, setlayout, {0} }, + { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space, togglefloating, {0} }, + { MODKEY, XKB_KEY_e, togglefullscreen, {0} }, ++ { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_E, togglefakefullscreen, {0} }, + { MODKEY, XKB_KEY_0, view, {.ui = ~0} }, + { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_parenright, tag, {.ui = ~0} }, + { MODKEY, XKB_KEY_comma, focusmon, {.i = WLR_DIRECTION_LEFT} }, +diff --git a/dwl.c b/dwl.c +index 5867b0c..1e78491 100644 +--- a/dwl.c ++++ b/dwl.c +@@ -137,7 +137,7 @@ typedef struct { + #endif + unsigned int bw; + uint32_t tags; +- int isfloating, isurgent, isfullscreen; ++ int isfloating, isurgent, isfullscreen, isfakefullscreen; + uint32_t resize; /* configure serial of a pending resize */ + } Client; + +@@ -318,6 +318,7 @@ static void setcursor(struct wl_listener *listener, void *data); + static void setcursorshape(struct wl_listener *listener, void *data); + static void setfloating(Client *c, int floating); + static void setfullscreen(Client *c, int fullscreen); ++static void setfakefullscreen(Client *c, int fullscreen); + static void setgamma(struct wl_listener *listener, void *data); + static void setlayout(const Arg *arg); + static void setmfact(const Arg *arg); +@@ -332,6 +333,7 @@ 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 togglefakefullscreen(const Arg *arg); + static void toggletag(const Arg *arg); + static void toggleview(const Arg *arg); + static void unlocksession(struct wl_listener *listener, void *data); +@@ -2181,6 +2183,17 @@ setfullscreen(Client *c, int fullscreen) + printstatus(); + } + ++void ++setfakefullscreen(Client *c, int fullscreen) ++{ ++ c->isfakefullscreen = fullscreen; ++ if (!c->mon) ++ return; ++ if (c->isfullscreen) ++ setfullscreen(c, 0); ++ client_set_fullscreen(c, fullscreen); ++} ++ + void + setgamma(struct wl_listener *listener, void *data) + { +@@ -2620,6 +2633,14 @@ togglefullscreen(const Arg *arg) + setfullscreen(sel, !sel->isfullscreen); + } + ++void ++togglefakefullscreen(const Arg *arg) ++{ ++ Client *sel = focustop(selmon); ++ if (sel) ++ setfakefullscreen(sel, !sel->isfakefullscreen); ++} ++ + void + toggletag(const Arg *arg) + { +-- +2.44.0 + |