broken input

sauer at studcs.uni-sb.de sauer at studcs.uni-sb.de
Fri Aug 23 12:31:18 CDT 2002


i succeded to run the game "Wizardry 8" with original wine. Now the input
is broken, almost every event is handled twice (e.g. i hit a and 2 a's
appear, clicking with mouse results in doubleclick) and it does not seem
to be a problem with dlls/x11drv/[event.c|keyboard.c|mouse.c]. Also the
windows/input.c sends all requests only once!

to see this insert in windows/input.c line 113 (the queue_raw_hardwar...):

	if (message == 0x0100) printf("request KeyDown\n");
	if (message == 0x0101) printf("request KeyUp\n");

here, 0x0100 is WM_KEYDOWN, 0x0101 is WM_KEYUP
now, i've added to scheduler/client.c line 745 (the wine_server_call):

		if (req->u.req.send_message_request.msg == 0x0100) \\
printf("sending KeyDown\n");
		if (req->u.req.send_message_request.msg == 0x0101) \\
printf("sending KeyUp\n");

In most cases this results in two send_requests per action (mouse also)
and sometimes (nondeterministic) i've got only one WM_KEYDOWN => only one
keypress (at the end of the mail is some output).

I'm stuck now at this point and do not know how to debug furhtermore. It's
obvious that wine_server_call gets called twice (once from windows/input.c
and the second time from ?!?). Can someone help me and tell me how to
continue. What do I have to do now to find the bug ?

mIc

P.S.: Yes, beeing addicted to computer games make's me debug wine!!!!!

Output:
request KeyDown
sending KeyDown
sending KeyDown
request KeyUp
sending KeyUp
sending KeyUp
request KeyDown
sending KeyDown
sending KeyDown
request KeyUp
sending KeyUp
request KeyDown
sending KeyDown
sending KeyDown
request KeyUp
sending KeyUp
sending KeyUp
request KeyDown
sending KeyDown
request KeyUp
sending KeyUp
sending KeyUp
request KeyDown
sending KeyDown
sending KeyDown
request KeyUp
sending KeyUp
sending KeyUp






More information about the wine-devel mailing list