summaryrefslogtreecommitdiffstats
path: root/dwl-patches/patches/fakefullscreenclient
diff options
context:
space:
mode:
Diffstat (limited to 'dwl-patches/patches/fakefullscreenclient')
-rw-r--r--dwl-patches/patches/fakefullscreenclient/README.md8
-rw-r--r--dwl-patches/patches/fakefullscreenclient/fakefullscreenclient.patch87
2 files changed, 95 insertions, 0 deletions
diff --git a/dwl-patches/patches/fakefullscreenclient/README.md b/dwl-patches/patches/fakefullscreenclient/README.md
new file mode 100644
index 0000000..6a98f0d
--- /dev/null
+++ b/dwl-patches/patches/fakefullscreenclient/README.md
@@ -0,0 +1,8 @@
+### Description
+Allow setting fake fullscreen per client
+
+### Download
+- [git branch](https://codeberg.org/notchoc/dwl/src/branch/fakefullscreenclient)
+- [2024-03-29](https://codeberg.org/dwl/dwl-patches/raw/branch/main/patches/fakefullscreenclient/fakefullscreenclient.patch)
+### Authors
+- [notchoc](https://codeberg.org/notchoc)
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
+