mirror of
				https://codeberg.org/dwl/dwl-patches.git
				synced 2025-10-31 12:04:23 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 09759c3ef75158c366e9fc63814485fbb31a3ccf 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 a2711f67..415fe1a0 100644
 | |
| --- a/dwl.c
 | |
| +++ b/dwl.c
 | |
| @@ -259,6 +259,7 @@ static void closemon(Monitor *m);
 | |
|  static void commitlayersurfacenotify(struct wl_listener *listener, void *data);
 | |
|  static void commitnotify(struct wl_listener *listener, void *data);
 | |
|  static void commitpopup(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);
 | |
| @@ -308,6 +309,7 @@ static void motionnotify(uint32_t time, struct wlr_input_device *device, double
 | |
|  		double sy, double sx_unaccel, double sy_unaccel);
 | |
|  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);
 | |
| @@ -849,6 +851,17 @@ commitpopup(struct wl_listener *listener, void *data)
 | |
|  	wl_list_remove(&listener->link);
 | |
|  }
 | |
|  
 | |
| +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)
 | |
|  {
 | |
| @@ -1927,6 +1940,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)
 | |
|  {
 | |
| @@ -2190,6 +2211,7 @@ resize(Client *c, struct wlr_box geo, int interact)
 | |
|  
 | |
|  	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.45.2
 | |
| 
 | 
