[haiku-appserver] Re: GetMouse()

  • From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
  • To: haiku-appserver@xxxxxxxxxxxxx
  • Date: Mon, 30 May 2005 11:36:56 +0200 CEST

Adi Oanca <adioanca@xxxxxxxxxxxxxx> wrote:
> Axel D=F6rfler wrote:
> > As long as the looper is locked, it cannot process any messages, 
> > and 
> > therefore doesn't get updated, even if running in another thread - 
> > was 
> > that clearer=3F
>       Not quite. :-)
>       Maybe we are talking different things... To recall: you don't
> agree with the fact that UpdateIfNeeded() must be called from 
> BWindow's
> thread only=3F

Only in "extreme" situations like GetMouse(), yes.

>       If that's the case I must remind you that UpdateIfNeeded() was
> introduced to: "Forcing an Update while Responding to an Event".

Which is exactly what GetMouse() does. When the looper is locked it 
cannot process any update messages - it is in waiting state, which is 
very similar to "responding to an event".

>       BTW, if you to this:
> Invalidate(rect);
> Window()->UpdateIfNeeded();
>       with our current implementation, it's quite possible you won't
> get the result you're looking for (ie. the rect being redrawn). Why=3F 
> The
> =5FUPDATE=5F message may not yet have arrived in BWindow's port queue.

Yes, but that's perfectly okay since you didn't use it properly :-)
A Flush() would be what you have to use here.

> (remember what I told you a couple weeks ago=3F)

I've no idea what you're referring to, sorry.


Other related posts: