Subject: FVWM: transients and layers

From: Mark Rainford <[email-masked]>
Date: Mon, 13 Sep 1999 18:31:06 +0100

Dominik et al.,

>Thursday, September 09, 1999 1:56 AM, Dominik wrote
>
>Mark, I think there is some bug in inner_RaiseOrLowerWindow().
>When an application changes its layer, the new_layer function
>calls RaiseWindow/LowerWindow while the stack ring is not
>sorted properly (the window is still stuck in the old layer).
>I think you are doing something with the unsorted stack ring
>that causes raising/lowering to behave funny. Any ideas?

In relation to both this and the various GNOME hints discussions ...

The handling of transients with respect to changes of layer seems to be
a bit mixed up. There is a half-hearted bit of code in
fvwm/stack.c(new_layer) in which RaiseTransient makes a main (which is
being moved to a higher layer) bring along its transients from the
layers being traversed - but it ignores any transients which were lower
than the old layer. Also, there is no attempt to handle LowerTransient.

Meanwhile, RaiseWindow() and LowerWindow() completely ignore
any transients which are not in the same layer as main - leading to
possibly undesirable behaviour such as LowerTransient leaving a
transient on-top - in a higher layer.

I'm not sure what to expect of transient windows when their Main
changes Layer; given that Layers are kinda new this is probably
untrodden ground. Let me have a guess at what the behaviour should be,
someone correct me ...

1) With neither RaiseTransient nor LowerTransient, a Main window
changing
layer does not change the layer of any Transients.

2) With RaiseTransient, a Main moving to a higher layer collects
Transients as it  goes - so that all its Transients which were in any
of the layers from the bottom through to the new (higher) layer are
moved to be above Main at the bottom of the new layer. Transients which
are already in layers higher than the new one are unaffected.

3) With Raise Transient, moving Main to a lower layer does not move
any Transients.

4) With LowerTransient, moving Main to a lower layer collects
Transients as it goes - so that all its Transients which were in any of
the layers from the top through to the new (lower) layer are moved to
be above Main at the top of the new (lower) layer. Transients which are
already in layers lower than the new one are unaffected.

5) With LowerTransient, moving Main to a higher layer does not move any
Transients.

.. or is it something else?
-- 

Regards,  Mark.
--
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]

---

From: Dominik Vogt <[email-masked]>
Date: Thu, 16 Sep 1999 01:49:31 +0200

> 5) With LowerTransient, moving Main to a higher layer does not move any

Mark, I doubt we should put much work into handling transients
on other layers than the parent. All this stuff is far too
complicated to find a solution that works well. This is a topic
on the wm-spec-list and may be subject to a lot of changes in the
near future. I would ignore all this until the wm-spec-list has
come to a decision.

Bye

Dominik ^_^

--
Dominik Vogt, [email-masked]
Reply-To: [email-masked]
--
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]

---

From: Mark Rainford <[email-masked]>
Date: Fri, 17 Sep 1999 18:41:48 +0100

Dominik,

Thu, 16 Sep 1999 01:49:31 +0200 Dominik Vogt wrote:
> > ......

Okay.

-- 

Regards,  Mark.