[patch 5/8] Cygwin update for changes in mieq API

Peter Hutterer peter.hutterer at who-t.net
Thu Oct 16 21:50:23 PDT 2008


ACK, untested.

On Thu, Oct 16, 2008 at 01:10:02PM +0100, jon.turney at dronecode.org.uk wrote:
> ---
>  xserver/hw/xwin/InitInput.c |    3 +--
>  xserver/hw/xwin/winkeybd.c  |   20 ++++++++++++--------
>  xserver/hw/xwin/winmouse.c  |   25 +++++++++++++++----------
>  3 files changed, 28 insertions(+), 20 deletions(-)
> 
> Index: xorg-git/xserver/hw/xwin/InitInput.c
> ===================================================================
> --- xorg-git.orig/xserver/hw/xwin/InitInput.c
> +++ xorg-git/xserver/hw/xwin/InitInput.c
> @@ -153,8 +153,7 @@ InitInput (int argc, char *argv[])
>    g_pwinPointer->name = strdup("Windows mouse");
>    g_pwinKeyboard->name = strdup("Windows keyboard");
>  
> -  miRegisterPointerDevice (screenInfo.screens[0], pMouse);
> -  mieqInit ((DevicePtr)pKeyboard, (DevicePtr)pMouse);
> +  mieqInit ();
>  
>    /* Initialize the mode key states */
>    winInitializeModeKeyStates ();
> Index: xorg-git/xserver/hw/xwin/winkeybd.c
> ===================================================================
> --- xorg-git.orig/xserver/hw/xwin/winkeybd.c
> +++ xorg-git/xserver/hw/xwin/winkeybd.c
> @@ -580,7 +580,8 @@ winKeybdReleaseKeys ()
>  void
>  winSendKeyEvent (DWORD dwKey, Bool fDown)
>  {
> -  xEvent			xCurrentEvent;
> +  EventListPtr events;
> +  int i, nevents;
>  
>    /*
>     * 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 */
>    g_winKeyState[dwKey] = fDown;
> -  
> -  ZeroMemory (&xCurrentEvent, sizeof (xCurrentEvent));
>  
> -  xCurrentEvent.u.u.type = fDown ? KeyPress : KeyRelease;
> -  xCurrentEvent.u.keyButtonPointer.time =
> -    g_c32LastInputEventTime = GetTickCount ();
> -  xCurrentEvent.u.u.detail = dwKey + MIN_KEYCODE;
> -  mieqEnqueue (&xCurrentEvent);
> +  GetEventList(&events);
> +  nevents = GetKeyboardEvents(events, g_pwinKeyboard, fDown ? KeyPress : KeyRelease, dwKey + MIN_KEYCODE);
> +
> +  for (i = 0; i < nevents; i++)
> +    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)
> Index: xorg-git/xserver/hw/xwin/winmouse.c
> ===================================================================
> --- xorg-git.orig/xserver/hw/xwin/winmouse.c
> +++ xorg-git/xserver/hw/xwin/winmouse.c
> @@ -100,7 +100,6 @@ winMouseProc (DeviceIntPtr pDeviceInt, i
>        InitPointerDeviceStruct (pDevice,
>  			       map,
>  			       lngMouseButtons + lngWheelEvents,
> -			       GetMotionHistory,
>  			       winMouseCtrl,
>  			       GetMotionHistorySize(),
>  			       2);
> @@ -221,19 +220,25 @@ winMouseWheel (ScreenPtr pScreen, int iD
>  void
>  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 (g_winMouseButtonMap)
> -    xCurrentEvent.u.u.detail = g_winMouseButtonMap[iButton];
> -  else
> +    iButton = g_winMouseButtonMap[iButton];
> +#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
> -  xCurrentEvent.u.u.detail = iButton;
> -  xCurrentEvent.u.keyButtonPointer.time
> -    = g_c32LastInputEventTime = GetTickCount ();
> -  mieqEnqueue (&xCurrentEvent);
>  }
>  
>  
> 
> -- 
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
> 
> 
> !DSPAM:48f73b0a250731187917547!
> 
Cheers,
  Peter



More information about the xorg mailing list