Bug still happens on mod-space. Patch attached.
On Sun, Sep 27, 2009 at 01:38, Anselm R Garbe <[email protected]> wrote:
> Hi there,
>
> I released a bugfix release that fixes the layout symbol updating
> mechanism during setlayout (though in a different way as suggested by
> Nibble) and that contains some improvements for the overall drawbar()
> and arrange() handling which performed unnecessary execution on
> unchanged monitors. It can be downloaded from:
>
> http://dl.suckless.org/dwm/dwm-5.7.1.tar.gz
>
> Please report any issues.
>
> Kind regards,
> Anselm
>
> 2009/9/26 Anselm R Garbe <[email protected]>:
>> Hi there,
>>
>> I'm glad to announce dwm-5.7 which can be downloaded from:
>>
>> http://dl.suckless.org/dwm/dwm-5.7.tar.gz
>>
>> This release contains various code cleanups and several minor
>> improvements, in particular several contributed patches by Neale,
>> anydot, Jukka, nsz, and Tony.
>> The biggest changes are that the layout symbol can be modified by the
>> arrange function of a layout (see monocle() for an example) and that
>> the updategeom() algorithm has been rewritten from scratch. Now
>> geometry changes do not result in a complete destruction of the
>> Monitor struct and broken applications like wine that configure the
>> root window do not result in recreating the Monitor struct altogether.
>>
>> Several patches have been updated to dwm-5.7 already.
>>
>> Once again many thanks to all contributors!
>>
>> Please report any issues.
>>
>> Kind regards,
>> Anselm
>
>
diff -r 496694696a61 dwm.c
--- a/dwm.c Sun Sep 27 10:31:20 2009 +0100
+++ b/dwm.c Sun Sep 27 02:59:56 2009 -0700
@@ -1449,10 +1449,9 @@
setlayout(const Arg *arg) {
if(!arg || !arg->v || arg->v != selmon->lt[selmon->sellt])
selmon->sellt ^= 1;
- if(arg && arg->v) {
+ if(arg && arg->v)
selmon->lt[selmon->sellt] = (Layout *)arg->v;
- strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol);
- }
+ strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol);
if(selmon->sel)
arrange(selmon);
else