mirror of
				https://codeberg.org/dwl/dwl-patches.git
				synced 2025-11-04 05:54:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 71809cee0e27f1b3620773e1745afed8023f71c9 Mon Sep 17 00:00:00 2001
 | 
						|
From: Shringe <dashingkoso@gmail.com>
 | 
						|
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
 | 
						|
 |