GetMessageTime

David Hammerton david at transgaming.com
Tue Sep 25 12:10:56 CDT 2001


Hey,

Durings my hunting down for why SetFocus wasnt always working, I have traced it
back to a problem with GetMessageTime(). (which I have made a temporary fix
for, haven't sent it to wine-patches because its not the 'right' way of fixing
it)

GetMessageTime() is supposed to return the time of the last message received by
GetMessage().

But there are two cases where the time set (req->time) is 0 - and I can't fix
it.
If you turn your eyes to server/queue.c, around line 910 and 926 you will see
the two times this value gets set to 0. Statically.

I believe the only way to fix this is some sort of restructuring, since
GetCurrentTime() (used by all other functions that set req->time) relies on a
variable thats not available to the wine server.

Anyone else have any suggestions?

BTW, One of the siderfects of this is: in dlls/x11drv/window.c line 1143,
GetMessageTime() is sometimes 0 (depends on the applicatoin, for example the
game Alice seems to make it return 0) - so the value sent to XSetInputFocus for
the time is too small, and hence X refuses to give the window focus.
As I said i've written a small patch for this, I may send it to wine-patches if
its worth it, but I really think that the source of the problem should be
addressed more urgently.

David.

-- 
David Hammerton, web programmer
TransGaming Technologies Inc.
http://www.transgaming.com
david at transgaming.com





More information about the wine-devel mailing list