Subject: Issues with layers/M_RAISE/M_LOWER

From: Matthias Clasen <[email-masked]>
Date: Thu, 4 Mar 1999 13:20:45 +0100

A small inconsistency in the fvwm<->module protocol: There is 
M_WINDOWSHADE/M_DEWINDOWSHADE, but no corresponding 
M_MAXIMIZE/M_DEMAXIMIZE pair. It turns out that no modules uses 
the WINDOWSHADE packets (apart from FvwmCommand listing it) so 
they could be removed without harm. I vote for doing so.

The introduction of layers has changed the semantics of Raise/Lower 
and accordingly of the M_RAISE/M_LOWER packets. I guess the pager 
is currently doing the wrong thing wrt to stacking order, since it 
will raise a window for which it receives a M_RAISE to the absolute
top while fvwm has raised it only to the top of its layer.

Two solutions come to mind: 

 1) Make modules knowledgeable about layers, ie add a M_LAYER 
    packet sent on layer changes and add the layer information 
    to the M_CONFIGURE_WINDOW/M_ADD_WINDOW packets. Then modules 
    can maintain a layered stacking order.
 
 2) Keep the illusion of an unlayered stacking order for modules.
    This needs a new packet M_RESTACK which would be used to
    tell modules about a window that has been raised to a new
    position different from the top of stack.
    Ie send more or less the parameters used for the XConfigureWindow
    done by fvwm (stack_mode and sibling, mainly). Then FvwmPager
    can do the corresponding XConfigureWindow.
    Perhaps we need to allow this to also transfer the information
    needed to do a XRestackWindows (since RaiseWindow basically
    does XConfigureWindow followed by XRestackWindows)

    So I think the contents of the M_RESTACK packet would have to 
    be stack_mode, sibling, list of windows (we would probably
    allow more than one window only in the case of stack_mode==Below,
    to get XRestackWindows functionality) 

    fvwm would then be changed to send M_RESTACK packets instead
    of M_RAISE/M_LOWER packets. Since the only module using M_RAISE/M_LOWER
    packets is the pager, this shouldn't break too much.

    Btw such a packet would also have to be sent from 
    HandleConfigureRequest if a client changes the stacking order
    of its window.
    
Comments ?

I think I'll try to implement 2).

Matthias 

-- 
Matthias Clasen, 
Tel. 0761/203-5606
Email: [email-masked]
Mathematisches Institut, Albert-Ludwigs-Universitaet Freiburg
--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked]