[Bug 38314] New:=?UTF-8?Q?=20Mouse=20Wheel=20doesn=E2=80=99t=20work=20for=20JA2=201=2E13=20?=(it uses MOUSEHOOKSTRUCTEX)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Mar 29 17:23:45 CDT 2015


https://bugs.winehq.org/show_bug.cgi?id=38314

            Bug ID: 38314
           Summary: Mouse Wheel doesn’t work for JA2 1.13 (it uses
                    MOUSEHOOKSTRUCTEX)
           Product: Wine
           Version: 1.7.39
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: -unknown
          Assignee: wine-bugs at winehq.org
          Reporter: notifications+bugs.winehq.org at m0a.de
      Distribution: ---

The mouse wheel does not work at all in JA2 1.13 and by looking at the source
code I think it may be one of several reasons:

1) MOUSEHOOKSTRUCTEX is not properly supported in wine
2) The wheel distance in mouseData does not equal WHEEL_DELTA (if it’s not
exactly WHEEL_DELTA then this code will just drop the event)
3) There is a "bug" in the JA2 1.13 code, which actually works in Windows
3a) If I look at the code I see a comparison with WHEEL_DELTA, this will fail
if the LOWORD of mouseData is not zero. Seems like on windows it’s always zero?
Maybe in wine it’s not zero? Source:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644969%28v=vs.85%29.aspx


The code:

LRESULT CALLBACK MouseHandler(int Code, WPARAM wParam, LPARAM lParam)
{
    [...]
    p_mhs = (MOUSEHOOKSTRUCTEX*)lParam;
    [...]
    if(p_mhs->mouseData==(WHEEL_DELTA<<16)) //up MessageBeep(-1);
        QueueEvent(MOUSE_WHEEL_UP, 0, uiParam);
    if(p_mhs->mouseData==(-WHEEL_DELTA<<16)) //dn MessageBeep(0x00000040L);
        QueueEvent(MOUSE_WHEEL_DOWN, 0, uiParam);

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list