
|
[haiku-appserver]
||
[Date Prev]
[10-2005 Date Index]
[Date Next]
||
[Thread Prev]
[10-2005 Thread Index]
[Thread Next]
[haiku-appserver] Re: partly paiting
- From: Adi Oanca <adioanca@xxxxxxxxxxxxxx>
- To: haiku-appserver@xxxxxxxxxxxxx
- Date: Mon, 17 Oct 2005 17:58:44 +0300
Stephan Aßmus wrote:
Boy oh boy, I must be out of my mind!!
[8<]
Sorry about that, apologies.
Hey, no worries Adi! It's not like we wanted to release the beast tomorrow.
The problem that my code solved, was that B_VIEW_RESIZED was not sent for
all
views that needed it. The way I solved this was to send a single message
which contained the tokens from all effected views. The comment you
removed
explained where this was done in Layer.cpp and what the potential problems
were.
About this...
Should we proceed like this, or should we send an individual message for
each view? To be compatible with R5, ::CurrentMessage() should return
correct
values for any view, don't you think?
If it works indeed by sending an individual message for each view in R5, then
I must say, this is quite an overhead. I would assume that sending a single
message is much cleaner and faster.
You know I agree here. I haven't tested in R5, but I assume it's one
message per view.
Resizing a single view (for example the
top window view) will result in all children with B_FOLLOW_* flags to be
moved and/or resized. On the app_server side, this is an "atomic" operation,
but when messages are sent for each view individually, I have a bad feeling
in my tommy, that this is a potential source of out-of-sync problems on the
client side. We could still emulate the single current message on the client
side and stick to the way I did it. What do you say?
I agree sending one message only. Let's stay with this solution and see
if all works OK. I just am afraid of ::DetachCurrentMessage() because, if this
method is called from ::FrameMoved/Resized() the user will be dumped into
debugger
with a seg fault; more checking is required for "case B_VIEW_RESIZED/MOVED:"
bye,
Adi.
|

|