OSDN Git Service

preserve m_msllHookCurrent only on button down event
[yamy/yamy.git] / engine.cpp
index a7f3dc8..ce68ba5 100644 (file)
@@ -618,7 +618,7 @@ unsigned int Engine::injectInput(const KEYBOARD_INPUT_DATA *i_kid, const KBDLLHO
                        kid[i].type = INPUT_MOUSE;\r
                        kid[i].mi.dx = 65535 * m_msllHookCurrent.pt.x / GetSystemMetrics(SM_CXVIRTUALSCREEN);\r
                        kid[i].mi.dy = 65535 * m_msllHookCurrent.pt.y / GetSystemMetrics(SM_CYVIRTUALSCREEN);\r
-                       kid[i].mi.time = m_msllHookCurrent.time;\r
+                       kid[i].mi.time = 0;\r
                        kid[i].mi.mouseData = 0;\r
                        kid[i].mi.dwExtraInfo = 0;\r
                        kid[i].mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_VIRTUALDESK;\r
@@ -627,7 +627,7 @@ unsigned int Engine::injectInput(const KEYBOARD_INPUT_DATA *i_kid, const KBDLLHO
                kid[i].type = INPUT_MOUSE;\r
                kid[i].mi.dx = 0;\r
                kid[i].mi.dy = 0;\r
-               kid[i].mi.time = m_msllHookCurrent.time;\r
+               kid[i].mi.time = 0;\r
                kid[i].mi.mouseData = 0;\r
                kid[i].mi.dwExtraInfo = 0;\r
                switch (i_kid->MakeCode) {\r
@@ -902,12 +902,11 @@ unsigned int Engine::mouseDetour(WPARAM i_message, MSLLHOOKSTRUCT *i_mid)
                                m_kidq.push_back(kid2);\r
                                SetEvent(m_readEvent);\r
                        }\r
-               } else {\r
+               } else if (!(kid.Flags & WM_MOUSEWHEEL)) {\r
                        m_buttonPressed = true;\r
+                       m_msllHookCurrent = *i_mid;\r
                }\r
 \r
-               m_msllHookCurrent = *i_mid;\r
-\r
                m_kidq.push_back(kid);\r
                SetEvent(m_readEvent);\r
 \r