Re: [Fwd: Patch to fix double input in Wizardry 8 demo]
Peter Hunnisett <[email protected]>
| Newsgroups | gmane.comp.emulators.winex.devel |
|---|---|
| Message-ID | <[email protected]> |
So I'm not sure this is what we want to do.
If you have a look in dlls/user/message.c in MSG_peek_message:
case MSG_HARDWARE_RAW:
if (!MSG_process_raw_hardware_message( &info.msg, extra_info,
hwnd, first, last,
flags & GET_MSG_REMOVE ))
goto next;
/* fall through */
case MSG_HARDWARE_COOKED:
if (!MSG_process_cooked_hardware_message( &info.msg, extra_info,
flags &
GET_MSG_REMOVE ))
{
flags |= GET_MSG_REMOVE_LAST;
goto next;
}
queue->GetMessagePosVal = MAKELONG( info.msg.pt.x,
info.msg.pt.y );
/* fall through */
case MSG_POSTED:
queue->GetMessageExtraInfoVal = extra_info;
if (info.msg.message >= WM_DDE_FIRST && info.msg.message <=
WM_DDE_LAST)
This is basically the statemachine. RAW->COOKED->POSTED
All returning TRUE from MSG_process_raw_hardware_message, for a keyboard
message, basically seems to mean is that the message is 1) has a hwnd
that it should be sent to (ie something has focus or there is an active
window) & 2) destined for this thread/application.
I'm not very familiar with this section of code, but that's my reading.
Is it possible we have something else going on since this setup seems to
be reasonably straightforward and work for many applications?
Ciao,
Peter
>
>
>
>
>
> Hello,
>
> Attached is a patch that fixes the double input problem for
> the Wizardry 8 demo. Note I haven't done any regression testing
> to make sure it doesn't break anything else. But it seems to
> fix an obvious bug...
>
> Tim
>
> P.S. I tried to send this to the sourceforge development list,
> but it bounced my email due to some ISP problem on my end.
>
>
>
> Index: windows/message.c
> ===================================================================
> RCS file: /cvsroot/winex/wine/windows/message.c,v
> retrieving revision 1.5
> diff -u -r1.5 message.c
> --- windows/message.c 25 Sep 2002 20:05:09 -0000 1.5
> +++ windows/message.c 31 Jul 2003 03:43:02 -0000
> @@ -572,7 +572,11 @@
> }
>
> /* save the message in the cooked queue if we didn't want to
> remove it */
> - if (!remove) queue_hardware_message( msg, extra_info,
> MSG_HARDWARE_COOKED );
> + if (!remove)
> + {
> + queue_hardware_message( msg, extra_info, MSG_HARDWARE_COOKED );
> + return FALSE;
> + }
> return TRUE;
> }
>
>
>
>
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01