mirror of
				https://codeberg.org/dwl/dwl-patches.git
				synced 2025-10-31 12:04:23 +00:00 
			
		
		
		
	 9c5d5d85f3
			
		
	
	
		9c5d5d85f3
		
			
		
	
	
	
	
		
			
			Eliminated wiki. Individual patches have a README.md explanation in their own subdirectory. Simplified submission of new patches and maintenance of existing patches. Instructions page (README.md autodisplayed) is now at https://codeberg.org/dwl/dwl-patches/
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 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
 | |
| 
 |