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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.