What determines restack order?

I noticed the other day that if I create 3 windows and arrange them in a
overlapped cascading fashion, that if I send them all to a higher layer
(‘All (Layer 4) +1’), the overlapping order is reversed. If I then send them
all to a lower layer (‘All (Layer 5) -1’), the overlapping order returns to the
original order.

Is there a way to change the layer of a group of windows without having
the windows stacking (relative to each other) change?


When you move a window to a higher layer it will end up at top of that layer, and when you move it to a lower layer it will end up at the bottom of that layer. All simply goes though all windows following the stacking order and issues the command on it. That mean that the bottom window affected by the All function will be the last to change layer according to the given rules.

One way I can think of to possible work around that is to use layersteps of two layers at a time and make a function that moves tem two layers in one direction and one layer in the opposite direction.

So my overlapping is preserved when I move the group to a lower layer.
If I want the overlapping preserve when I move to a higher layer I can
do something like this:

All (State 1) Layer +1 All (State 1) Lower

That appears to work just fine.

Well, no. I believe I was wrong before. It’s not the stack order, but the window ring that is used. So When you change multiple windows to a new layer they will end up in some order based on when they were last focused.

With the current (really current) CVS version you can do

All Reverse UseStack (State 1) Layer +1

All UseStack (State 1) Layer -1

Yes, I saw the email on fvwm-workers. I’m curious to see what the other
developers have to say (if anything) about it.