symantics between cwm groups and ewmh got in the way. Ensure a client
that wants to be in nogroup stays in nogroup (thus stays in view), even
when (re)reading NET_WM_DESKTOP. Paritially reverts patchset 644
(2014-02-07 13:09 PST) which deals with a NULL cc->group. All to be
revisited when NET_WM_STATE_STICKY hits cwm.
Reported by many; testing and ok phessler.
since nhidden wasn't incremented nor decremeted in all the right places,
thus confusing matters. We don't need to carry a count around, so just
use a local variable in the one place we need one to supply
XRestackWindows().
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@