From f035e1e5abb19df5dced9c592ca986deac460435 Mon Sep 17 00:00:00 2001
From: bastila <20937049+silentfault@users.noreply.github.com>
Date: Thu, 23 Jul 2020 02:45:12 +0300
Subject: [PATCH] Fix overflow when window name is bigger than window width

---
 dwm.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/dwm.c b/dwm.c
index 9fd0286..42cb8dd 100644
--- a/dwm.c
+++ b/dwm.c
@@ -731,8 +731,12 @@ drawbar(Monitor *m)
 
 	if ((w = m->ww - tw - x) > bh) {
 		if (m->sel) {
+            /* fix overflow when window name is bigger than window width */
+			int mid = (m->ww - (int)TEXTW(m->sel->name)) / 2 - x;
+			/* make sure name will not overlap on tags even when it is very long */
+			mid = mid >= lrpad / 2 ? mid : lrpad / 2;
 			drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]);
-			drw_text(drw, x, 0, w, bh, lrpad / 2, m->sel->name, 0);
+			drw_text(drw, x, 0, w, bh, mid, m->sel->name, 0);
 			if (m->sel->isfloating)
 				drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0);
 		} else {
-- 
2.27.0

