diff options
Diffstat (limited to 'dwm/dwm-fullscreen-20260112-f4fdaff.diff')
| -rw-r--r-- | dwm/dwm-fullscreen-20260112-f4fdaff.diff | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/dwm/dwm-fullscreen-20260112-f4fdaff.diff b/dwm/dwm-fullscreen-20260112-f4fdaff.diff new file mode 100644 index 0000000..274ccae --- /dev/null +++ b/dwm/dwm-fullscreen-20260112-f4fdaff.diff @@ -0,0 +1,60 @@ +From f4fdaff5cf85287ad11272902054cdbaf44535fe Mon Sep 17 00:00:00 2001 +From: Savar <savar95x@gmail.com> +Date: Mon, 12 Jan 2026 17:26:41 +0530 +Subject: [PATCH] fullscreen: fix toggle logic loop by checking active layout + +--- + config.def.h | 1 + + dwm.c | 17 +++++++++++++++++ + 2 files changed, 18 insertions(+) + +diff --git a/config.def.h b/config.def.h +index 81c3fc0..ef36491 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -78,6 +78,7 @@ static const Key keys[] = { + { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, + { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, + { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, ++ { MODKEY|ShiftMask, XK_f, fullscreen, {0} }, + { MODKEY, XK_space, setlayout, {0} }, + { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, + { MODKEY, XK_0, view, {.ui = ~0 } }, +diff --git a/dwm.c b/dwm.c +index 8f4fa75..a2237a9 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -199,6 +199,7 @@ static void sendmon(Client *c, Monitor *m); + static void setclientstate(Client *c, long state); + static void setfocus(Client *c); + static void setfullscreen(Client *c, int fullscreen); ++static void fullscreen(const Arg *arg); + static void setlayout(const Arg *arg); + static void setmfact(const Arg *arg); + static void setup(void); +@@ -1507,6 +1508,22 @@ setfullscreen(Client *c, int fullscreen) + } + } + ++Layout *last_layout; ++void ++fullscreen(const Arg *arg) ++{ ++ if (selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt] != &layouts[2]) { ++ for(last_layout = (Layout *)layouts; last_layout != selmon->lt[selmon->sellt]; last_layout++); ++ setlayout(&((Arg) { .v = &layouts[2] })); ++ if (selmon->showbar) ++ togglebar(arg); ++ } else { ++ setlayout(&((Arg) { .v = last_layout })); ++ if (!selmon->showbar) ++ togglebar(arg); ++ } ++} ++ + void + setlayout(const Arg *arg) + { +-- +2.51.2 + |
