Skip to content
  • Stein's avatar
    5799dd1f
    Remove blw variable in favour of calculating the value when needed · 5799dd1f
    Stein authored
    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
    2ce37bc6 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.
    5799dd1f
    Remove blw variable in favour of calculating the value when needed
    Stein authored
    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
    2ce37bc6 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.
Loading