(file) Return to xf86Xinput.c CVS log (file) (dir) Up to [XFree86 CVS] / xc / programs / Xserver / hw / xfree86 / common

Diff for /xc/programs/Xserver/hw/xfree86/common/xf86Xinput.c between version 3.46 and 3.47

version 3.46, 1999/05/16 06:55:50 version 3.47, 1999/05/30 02:28:10
Line 24 
Line 24 
  *  *
  */  */
  
 /* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Xinput.c,v 3.45 1999/05/09 06:06:21 dawes Exp $ */  /* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Xinput.c,v 3.46 1999/05/16 06:55:50 dawes Exp $ */
  
 #include "Xfuncproto.h" #include "Xfuncproto.h"
 #include "Xmd.h" #include "Xmd.h"
Line 273 
Line 273 
 { {
     LocalDevicePtr        local = (LocalDevicePtr)dev->public.devicePrivate;     LocalDevicePtr        local = (LocalDevicePtr)dev->public.devicePrivate;
  
       local->dxremaind = 0.0;
       local->dyremaind = 0.0;
   
     if (InitIntegerFeedbackClassDeviceStruct(dev, xf86AlwaysCoreControl) == FALSE) {     if (InitIntegerFeedbackClassDeviceStruct(dev, xf86AlwaysCoreControl) == FALSE) {
         ErrorF("Unable to init integer feedback for always core feature\n");         ErrorF("Unable to init integer feedback for always core feature\n");
     } else {     } else {
Line 385 
Line 388 
  */  */
  
 void void
 OpenInputDevice(DeviceIntPtr dev, ClientPtr client, int *status)  OpenInputDevice(DeviceIntPtr    dev,
                   ClientPtr       client,
                   int             *status)
 { {
     if (!dev->inited) {     if (!dev->inited) {
         *status = BadDevice;         *status = BadDevice;
Line 897 
Line 902 
     ValuatorClassPtr            val = device->valuator;     ValuatorClassPtr            val = device->valuator;
     int                         *axisvals;     int                         *axisvals;
     AxisInfoPtr                 axes;     AxisInfoPtr                 axes;
       int                         dx, dy;
       float                       mult;
 #ifdef XFreeXDGA #ifdef XFreeXDGA
     int xdelta, ydelta;      int                         xdelta = 0, ydelta = 0;
 #endif #endif
  
     DBG(5, ErrorF("xf86PostMotionEvent BEGIN 0x%x(%s) switch=0x%x is_core=%s is_shared=%s is_absolute=%s\n",     DBG(5, ErrorF("xf86PostMotionEvent BEGIN 0x%x(%s) switch=0x%x is_core=%s is_shared=%s is_absolute=%s\n",
Line 944 
Line 951 
  
             if (loop == 1 && !is_absolute && device->ptrfeed && device->ptrfeed->ctrl.num) {             if (loop == 1 && !is_absolute && device->ptrfeed && device->ptrfeed->ctrl.num) {
                 /* modeled from xf86Events.c */                 /* modeled from xf86Events.c */
                   if (device->ptrfeed->ctrl.threshold) {
                 if ((abs(xv->valuator0) + abs(xv->valuator1)) >= device->ptrfeed->ctrl.threshold) {                 if ((abs(xv->valuator0) + abs(xv->valuator1)) >= device->ptrfeed->ctrl.threshold) {
                     xv->valuator0 = (xv->valuator0 * device->ptrfeed->ctrl.num) /                     xv->valuator0 = (xv->valuator0 * device->ptrfeed->ctrl.num) /
                         device->ptrfeed->ctrl.den;                         device->ptrfeed->ctrl.den;
                     xv->valuator1 = (xv->valuator1 * device->ptrfeed->ctrl.num) /                     xv->valuator1 = (xv->valuator1 * device->ptrfeed->ctrl.num) /
                         device->ptrfeed->ctrl.den;                         device->ptrfeed->ctrl.den;
                     DBG(6, ErrorF("xf86PostMotionEvent acceleration v0=%d v1=%d\n", xv->valuator0, xv->valuator1));  
                 }                 }
             }             }
                   else if (xv->valuator0 || xv->valuator1) {
                       dx = xv->valuator0;
                       dy = xv->valuator1;
                       mult = pow((float)(dx*dx+dy*dy),
                                  ((float)(device->ptrfeed->ctrl.num) /
                                   (float)(device->ptrfeed->ctrl.den) - 1.0) /
                                  2.0) / 2.0;
                       if (dx) {
                           local->dxremaind = mult * (float)dx + local->dxremaind;
                           xv->valuator0 = dx = (int)local->dxremaind;
                           local->dxremaind = local->dxremaind - (float)dx;
                       }
                       if (dy) {
                           local->dyremaind = mult * (float)dy + local->dyremaind;
                           xv->valuator1 = dy = (int)local->dyremaind;
                           local->dyremaind = local->dyremaind - (float)dy;
                       }
                   }
                   DBG(6, ErrorF("xf86PostMotionEvent acceleration v0=%d v1=%d\n", xv->valuator0, xv->valuator1));
               }
   
             /* mr Sat Jul  5 13:46:55 MET 1997             /* mr Sat Jul  5 13:46:55 MET 1997
              * fix to recognize XWarpCursor requests              * fix to recognize XWarpCursor requests
              * FL Thu Nov 12 07:42:03 1998              * FL Thu Nov 12 07:42:03 1998
Line 1317 
Line 1345 
         GetSpritePosition(&cx, &cy);         GetSpritePosition(&cx, &cy);
  
         xE->u.u.type = is_down ? ButtonPress : ButtonRelease;         xE->u.u.type = is_down ? ButtonPress : ButtonRelease;
         xE->u.u.detail =  button;          xE->u.u.detail =  device->button->map[button];
         xE->u.keyButtonPointer.rootY = cx;         xE->u.keyButtonPointer.rootY = cx;
         xE->u.keyButtonPointer.rootX = cy;         xE->u.keyButtonPointer.rootX = cy;
         xf86Info.lastEventTime = xE->u.keyButtonPointer.time = GetTimeInMillis();         xf86Info.lastEventTime = xE->u.keyButtonPointer.time = GetTimeInMillis();


Legend:
Removed from v.3.46  
changed lines
  Added in v.3.47

Powered by
ViewCVS 0.9.2