[openbeos] Re: BWindow->AddChild(view, sibling!=NULL) bug

  • From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
  • To: openbeos@xxxxxxxxxxxxx
  • Date: Tue, 08 Aug 2006 15:11:08 +0200 CEST

"Zenja Solaja" <solaja@xxxxxxxxx> wrote:
> Thanks Axel.  As usual, you are incredibly quick to answer even the 
> most
> obscure question.  You are a real treasure in the BeOS community :)

Sure 8-)

> Your suggestion did work, though I'm still curious as to why the 
> original
> BWindow version of AddChild(control, background) would not work 
> correctly
> when I actually specify insert before sibling.  Following the 
> description in
> the BeBook, messages are passed from highest child to lowest (until 
> its
> accepted), and if the control view is higher than background (what 
> ChildAt()
> confirms), then control_view should have recieved the message first.

You got that wrong: there is no highest/lowest relation between 
siblings, they are all on the same level.

> I was curious as to why the internal handler list order did not match 
> the
> child order.

Because it doesn't have to. This is what the BeBook has to say about 
overlapping siblings:

        "Overlapping Siblings
        Siblings don't draw in a predefined order. If they overlap, it's 
indeterminate
        which view will draw last - that is, which one will draw in front 
of the others.
        Similarly, it's indeterminate which view will receive the mouse 
events that occur
        in the area the siblings share.
        Therefore, it's strongly recommended that you arrange your sibling 
views so
        they don't overlap."

HTH,

Bye,
   Axel.


Other related posts: