Remove blw variable in favour of calculating the value when needed
commit5799dd1fca6576b662d299e210cd5933b29d502d
authorStein <bakkeby@gmail.com>
Mon, 15 Aug 2022 12:31:22 +0000 (15 14:31 +0200)
committerHiltjo Posthuma <hiltjo@codemadness.org>
Wed, 17 Aug 2022 11:33:57 +0000 (17 13:33 +0200)
treef8255ee824d846e6d7ed7da93126435b00c7929c
parent44adafe0069e73aa03a3829d7bb39591cd8b3f1d
Remove blw variable in favour of calculating the value when needed

The purpose and reasoning behind the bar layout width (blw) variable
in dwm the way it is today may not be immediately obvious.

The use of the variable makes more sense when looking at commit
2ce37bc from 2009 where blw was initialised in the setup function
and it represented the maximum of all available layout symbols.

for(blw = i = 0; LENGTH(layouts) > 1 && i < LENGTH(layouts); i++) {
w = TEXTW(layouts[i].symbol);
blw = MAX(blw, w);
}

As such the layout symbol back then was fixed in size and both drawbar
and buttonpress depended on this variable.

The the way the blw variable is set today in drawbar means that it
merely caches the size of the layout symbol for the last bar drawn.

While unlikely to happen in practice it is possible that the last bar
drawn is not that of the currently selected monitor, which can result
in misaligned button clicks if there is a difference in layout symbol
width between monitors.
dwm.c