[haiku-appserver] Re: GetMouse()

  • From: Adi Oanca <adioanca@xxxxxxxxxxxxx>
  • To: haiku-appserver@xxxxxxxxxxxxx
  • Date: Fri, 20 May 2005 00:02:14 +0300

Axel Dörfler wrote:
>>>Yes, indeed, the coordinate change helped a lot :-)
>>>It still looks very bad compared to R5 as well as the asynchronous 
>>>version, but at least it's somewhat working now!
>>
>>One thing I'm wondering about: How about doing the stuff we now do in 
>>BView::GetMouse() in BWindow::UpdateIfNeeded()=3F We will need this 
>>for 
>>synchronous BAlerts::Go() too BTW. BView::GetMouse() could then use 
>>UpdateIfNeeded(). I haven't looked very close at that code, so I 
>>might 
>>be way off here.
> 
> I just had a look, and indeed, these are very similar - or should be, 
> in fact, UpdateIfNeeded() doesn't work as it's done now;

        Definitely! :-) At the time I wrote it there was a big mystery what 
this method supposed to do. Things got more clear along the was, but I 
did not find the time (better say: I did not needed it :-P ) to have it 
right.

> it would need 
> to be something more like GetMouse() or even should call DoUpdate() 
> directly.

        I'm still not sure about this method. What I think it should do, is 
process the _UPDATE_ request that is pending in the message queue, just 
as GetMouse() does, and above that, it should query the server if there 
still are invalid regions to be updated (regions that became invalid 
since the server sent the last _UPDATE_ request) and if there are do, 
get the data from the reply and do a DispatchMessage(updateMsg, this) again.
        That is a bit complicated to achieve, so I think we should stick with 
the UpdateIfNeeded() you implemented, and if problems appear, consider 
the above.

> But as I think about it: it's a bad idea that there is always only one 
> _UPDATE_ message in the queue, as it slows down the whole thing quite a 
> lot; the latency between to (necessary) _UPDATE_ messages is increased 
> a lot this way and for no reason.

        It is a bit lengthly to explain why we do that. But believe me, what we 
do it's OK. (It's optimal too. :-) )

> BTW I have tried several apps now under Haiku, and some of them even 
> run (R5 & Haiku DataTranslation preferences apps, for example, even 
> though both look kinda strange).
> Many of them will let the app_server crash.

        Of course. Lots remain to be done. ;-) :-(

> How would I try FFM with our app_server? The Mouse preferences app 
> doesn't work yet (it's one of those that let the app_server crash here) 
> :-)

        Later... It's not a priority ATM. :-)


bye,
Adi.

Other related posts: