mirror of
				https://codeberg.org/dwl/dwl-patches.git
				synced 2025-10-31 03:54:19 +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/
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 681e520deaeee460647de36f5312af3cb0c31f4a Mon Sep 17 00:00:00 2001
 | |
| From: Ben Collerson <benc@benc.cc>
 | |
| Date: Sat, 30 Dec 2023 13:39:31 +1000
 | |
| Subject: [PATCH] simpleborders
 | |
| 
 | |
| ---
 | |
|  dwl.c | 22 ++++++++++++++++++++++
 | |
|  1 file changed, 22 insertions(+)
 | |
| 
 | |
| diff --git a/dwl.c b/dwl.c
 | |
| index 4d19357..900e651 100644
 | |
| --- a/dwl.c
 | |
| +++ b/dwl.c
 | |
| @@ -245,6 +245,7 @@ static void cleanupmon(struct wl_listener *listener, void *data);
 | |
|  static void closemon(Monitor *m);
 | |
|  static void commitlayersurfacenotify(struct wl_listener *listener, void *data);
 | |
|  static void commitnotify(struct wl_listener *listener, void *data);
 | |
| +static int countclients(Monitor *m);
 | |
|  static void createdecoration(struct wl_listener *listener, void *data);
 | |
|  static void createidleinhibitor(struct wl_listener *listener, void *data);
 | |
|  static void createkeyboard(struct wlr_keyboard *keyboard);
 | |
| @@ -286,6 +287,7 @@ static void motionabsolute(struct wl_listener *listener, void *data);
 | |
|  static void motionnotify(uint32_t time);
 | |
|  static void motionrelative(struct wl_listener *listener, void *data);
 | |
|  static void moveresize(const Arg *arg);
 | |
| +static int needsborder(Client *c);
 | |
|  static void outputmgrapply(struct wl_listener *listener, void *data);
 | |
|  static void outputmgrapplyortest(struct wlr_output_configuration_v1 *config, int test);
 | |
|  static void outputmgrtest(struct wl_listener *listener, void *data);
 | |
| @@ -739,6 +741,17 @@ commitnotify(struct wl_listener *listener, void *data)
 | |
|  		c->resize = 0;
 | |
|  }
 | |
|  
 | |
| +int
 | |
| +countclients(Monitor *m)
 | |
| +{
 | |
| +	unsigned int n = 0;
 | |
| +	Client *c;
 | |
| +	wl_list_for_each(c, &clients, link)
 | |
| +		if (VISIBLEON(c, m) && !c->isfloating && !c->isfullscreen)
 | |
| +			n++;
 | |
| +	return n;
 | |
| +}
 | |
| +
 | |
|  void
 | |
|  createdecoration(struct wl_listener *listener, void *data)
 | |
|  {
 | |
| @@ -1697,6 +1710,14 @@ moveresize(const Arg *arg)
 | |
|  	}
 | |
|  }
 | |
|  
 | |
| +int
 | |
| +needsborder(Client *c) {
 | |
| +	return ((countclients(c->mon) > 1
 | |
| +			&& c->mon->lt[c->mon->sellt]->arrange != monocle)
 | |
| +		|| c->isfloating)
 | |
| +		&& !c->isfullscreen;
 | |
| +}
 | |
| +
 | |
|  void
 | |
|  outputmgrapply(struct wl_listener *listener, void *data)
 | |
|  {
 | |
| @@ -1930,6 +1951,7 @@ resize(Client *c, struct wlr_box geo, int interact)
 | |
|  	struct wlr_box clip;
 | |
|  	client_set_bounds(c, geo.width, geo.height);
 | |
|  	c->geom = geo;
 | |
| +	c->bw = needsborder(c) ? borderpx : 0;
 | |
|  	applybounds(c, bbox);
 | |
|  
 | |
|  	/* Update scene-graph, including borders */
 | |
| -- 
 | |
| 2.43.0
 | |
| 
 |