From 71809cee0e27f1b3620773e1745afed8023f71c9 Mon Sep 17 00:00:00 2001 From: Shringe Date: Mon, 23 Jun 2025 18:50:40 -0500 Subject: [PATCH] Implemented functionality for patch --- config.def.h | 1 + dwl.c | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/config.def.h b/config.def.h index 22d2171..dda4ad0 100644 --- a/config.def.h +++ b/config.def.h @@ -142,6 +142,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_G, togglefullscreenkeyinhibit, {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 f11de4b..5deb9c7 100644 --- a/dwl.c +++ b/dwl.c @@ -341,6 +341,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 togglefullscreenkeyinhibit(const Arg *arg); static void toggletag(const Arg *arg); static void toggleview(const Arg *arg); static void unlocksession(struct wl_listener *listener, void *data); @@ -414,6 +415,8 @@ static struct wlr_box sgeom; static struct wl_list mons; static Monitor *selmon; +static int fullscreen_key_inhibit_enabled = 0; + #ifdef XWAYLAND static void activatex11(struct wl_listener *listener, void *data); static void associatex11(struct wl_listener *listener, void *data); @@ -1583,8 +1586,9 @@ keybinding(uint32_t mods, xkb_keysym_t sym) for (k = keys; k < END(keys); k++) { if (CLEANMASK(mods) == CLEANMASK(k->mod) && sym == k->keysym && k->func) { - if (c && c->isfullscreen) { - if (k->func == togglefullscreen) { + if (fullscreen_key_inhibit_enabled + && c && c->isfullscreen) { + if (k->func == togglefullscreenkeyinhibit) { k->func(&k->arg); return 1; } @@ -2763,6 +2767,12 @@ togglefullscreen(const Arg *arg) setfullscreen(sel, !sel->isfullscreen); } +void +togglefullscreenkeyinhibit(const Arg *arg) +{ + fullscreen_key_inhibit_enabled = !fullscreen_key_inhibit_enabled; +} + void toggletag(const Arg *arg) { -- 2.49.0