group 0 (nogroup); solves problem initially discovered by oga@nicotinebsd with
tint2. A clientmessage *after* client creation already handles this case.
Go further and assign every client to a group; in non-sticky mode, group 0
(nogroup) and sticky mode, the active group. In both cases, autogroup will
override the group assignment. Removing a group from a client always places
the client back into group 0 (nogroup). Autogroup can also assign a client to
group 0 (nogroup) to keep a client always visible (unless of course one opts to
hide all clients).
event on the screen's root window, there's no need to pass down the
entire XButtonEvent event, at least to group_menu(), the only callback
which takes an argument at this point; instead use the already populated
screen.
(in sticky or non-stick mode), regardless of existing clients assigned
to that group; oga marked this bit XXX in -r1.34 for it didn't seem make
sense then either.
pulled from a diff from from Alexander Polakov.
note that a re-exec of cwm will not rewrite the group number atom of
*existing* clients, so they will remain off-by-one until each client has
its atom updated, or of course a restart of X.
group_movetogroup() on one client will still increment nhidden if the
group is hidden.
found the hard way by Thomas Jeunet and fix from Alexander Polakov -
thanks to both!
ok oga@
cwmrc(5)). instead, fix cwmrc(5) to match the old behavior which also
happens to match the example config, of which many have based their
configs; this also nicely matches the output of xprop(1).
clean-up of variable names as a separate commit.
suggested by sthen (and something we should have done initially).
discussed with and ok oga@
it works kinda like _CWM_GRP, which we added to aid restarts a while
ago, but it's standardised and clients are specifically allowed to set
it to request a desktop.
for noe we leave _CWM_GRP support in, but its days are now numbered.
while i'm here fixup an int/long mixup with an earlier diff.
ok okan@
says that a pager can change the property at any time (most need a
clientmessage). So deal with property updates.
Needed to shuffle some of the other code around since we can't just use
shortcut_to_name[] everywhere now.
ok okan@