Cygwin/X: update for changes in mieq API

Bring Cygwin/X up to date with mieq event API changes

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
This commit is contained in:
Jon TURNEY 2008-11-02 18:27:12 +00:00
parent bca7483c4e
commit 816e0d243d
3 changed files with 28 additions and 20 deletions

View File

@ -153,8 +153,7 @@ InitInput (int argc, char *argv[])
g_pwinPointer->name = strdup("Windows mouse"); g_pwinPointer->name = strdup("Windows mouse");
g_pwinKeyboard->name = strdup("Windows keyboard"); g_pwinKeyboard->name = strdup("Windows keyboard");
miRegisterPointerDevice (screenInfo.screens[0], pMouse); mieqInit ();
mieqInit ((DevicePtr)pKeyboard, (DevicePtr)pMouse);
/* Initialize the mode key states */ /* Initialize the mode key states */
winInitializeModeKeyStates (); winInitializeModeKeyStates ();

View File

@ -580,7 +580,8 @@ winKeybdReleaseKeys ()
void void
winSendKeyEvent (DWORD dwKey, Bool fDown) winSendKeyEvent (DWORD dwKey, Bool fDown)
{ {
xEvent xCurrentEvent; EventListPtr events;
int i, nevents;
/* /*
* When alt-tabing between screens we can get phantom key up messages * When alt-tabing between screens we can get phantom key up messages
@ -590,14 +591,17 @@ winSendKeyEvent (DWORD dwKey, Bool fDown)
/* Update the keyState map */ /* Update the keyState map */
g_winKeyState[dwKey] = fDown; g_winKeyState[dwKey] = fDown;
ZeroMemory (&xCurrentEvent, sizeof (xCurrentEvent));
xCurrentEvent.u.u.type = fDown ? KeyPress : KeyRelease; GetEventList(&events);
xCurrentEvent.u.keyButtonPointer.time = nevents = GetKeyboardEvents(events, g_pwinKeyboard, fDown ? KeyPress : KeyRelease, dwKey + MIN_KEYCODE);
g_c32LastInputEventTime = GetTickCount ();
xCurrentEvent.u.u.detail = dwKey + MIN_KEYCODE; for (i = 0; i < nevents; i++)
mieqEnqueue (&xCurrentEvent); mieqEnqueue(g_pwinKeyboard, events[i].event);
#if CYGDEBUG
ErrorF("winSendKeyEvent: dwKey: %d, fDown: %d, nEvents %d\n",
dwKey, fDown, nevents);
#endif
} }
BOOL winCheckKeyPressed(WPARAM wParam, LPARAM lParam) BOOL winCheckKeyPressed(WPARAM wParam, LPARAM lParam)

View File

@ -100,7 +100,6 @@ winMouseProc (DeviceIntPtr pDeviceInt, int iState)
InitPointerDeviceStruct (pDevice, InitPointerDeviceStruct (pDevice,
map, map,
lngMouseButtons + lngWheelEvents, lngMouseButtons + lngWheelEvents,
GetMotionHistory,
winMouseCtrl, winMouseCtrl,
GetMotionHistorySize(), GetMotionHistorySize(),
2); 2);
@ -221,19 +220,25 @@ winMouseWheel (ScreenPtr pScreen, int iDeltaZ)
void void
winMouseButtonsSendEvent (int iEventType, int iButton) winMouseButtonsSendEvent (int iEventType, int iButton)
{ {
xEvent xCurrentEvent; EventListPtr events;
int i, nevents;
/* Load an xEvent and enqueue the event */
xCurrentEvent.u.u.type = iEventType;
#if defined(XFree86Server) #if defined(XFree86Server)
if (g_winMouseButtonMap) if (g_winMouseButtonMap)
xCurrentEvent.u.u.detail = g_winMouseButtonMap[iButton]; iButton = g_winMouseButtonMap[iButton];
else #endif
GetEventList(&events);
nevents = GetPointerEvents(events, g_pwinPointer, iEventType, iButton,
POINTER_RELATIVE, 0, 0, NULL);
for (i = 0; i < nevents; i++)
mieqEnqueue(g_pwinPointer, events[i].event);
#if CYGDEBUG
ErrorF("winMouseButtonsSendEvent: iEventType: %d, iButton: %d, nEvents %d\n",
iEventType, iButton, nevents);
#endif #endif
xCurrentEvent.u.u.detail = iButton;
xCurrentEvent.u.keyButtonPointer.time
= g_c32LastInputEventTime = GetTickCount ();
mieqEnqueue (&xCurrentEvent);
} }