[haiku-appserver] Re: invalidation again

  • From: Adi Oanca <adioanca@xxxxxxxxxxxxxx>
  • To: haiku-appserver@xxxxxxxxxxxxx
  • Date: Fri, 15 Apr 2005 15:06:25 +0300

Hi Stephan,

Stephan Assmus wrote:
>>      It is simple. If it doesn't work, that's another problem...
>>GetRootLayer()->GoRedraw(cl, reg) should've worked in this case.
> 
> I think the problem is that SendUpdateMsg() is not called for the 
> client if a layer is not the top layer.

        Yup, that's exactly the problem. :-)
        Glad you got that one out. :-)

        I think you realized why messages are sent for top_view only. :-)
However, I simply forgot to take into account that GoRedraw() may be
called with an usual Layer.

        Sorry for the inconvenience. I will fix in no time.

> That part was clear to me (and I understand why it works that way), but 
> there is also Layer::Redraw(), Layer::RequestRedraw() and probably even 
> more... :-}

        :-P

> Yeah, I tried to follow that. The main problem was all these clipping 
> regions with completely obscure names. They give no hint what they are 
> used for.

        Well, maybe you're right.

fVisible - is the actual visible region of a layer
fFullVisible - is the visible region of a layer + all the visible regions
        of all layers that it contains (the whole tree).
fFull - is the region equal to layer's bounds + client specified clipping
        regions BView::ConstrainClippingRegion(). (this how the Layer's
        visible region would look like if it would be completely visible
        and have no children)

fVisible + fFullVisible == fFull if the Layer is entirely visible.

> Thank you, if this thing works, I think we can have a first couple of 
> apps running under Haiku, and when you push a button, you will see it 
> redraw...

        Nice.

> moment.) So the focus can be on cient <-> app_server communication and 
> the interface kit actually working (to a reasonable degree).

        I must finish my work on window manager. In big tasks, all I have
left is to implement BWindow::SetFeel() and solve a bug relating to
B_MODAL_APP windows. Talking about small tasks, I have to implement support
for all BWindow::Flags(), window allignment, etc. :-) But those are not
urgent issues.


bye,
Adi.

Other related posts: