Axel Dörfler wrote: > 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. What makes GetMouse() "extreme"? Another question of mine, is why does GetMouse in R5/Haiku dispatches _UPDATE_ messages? Yet another question. Once we have locked BWindow's thread from another thread and we are drawing from there, why shouldn't we be able to call UpdateIfNeeded() so that any pending update requests be resolved from there too? We have locked the window thread, why not be able to do almost all operations from another thread? I for one, find it useful to call UpdateIfNeeded() from another thread from which I'm drawing(and invalidating) stuff. >> 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. Not even a Sync() would assure me a _UPDATE_ message is in port's queue. >>(remember what I told you a couple weeks ago=3F) > I've no idea what you're referring to, sorry. "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." bye, Adi.