Unverified Commit 05152b78 authored by Mihai Moldovan's avatar Mihai Moldovan

Merge branch 'uli42-pr/update_xi' into arctica-3.6.x

parents e247900e 4598c0c3
...@@ -55,14 +55,14 @@ SOFTWARE. ...@@ -55,14 +55,14 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "allowev.h" #include "allowev.h"
...@@ -75,15 +75,14 @@ SOFTWARE. ...@@ -75,15 +75,14 @@ SOFTWARE.
*/ */
int int
SProcXAllowDeviceEvents(client) SProcXAllowDeviceEvents(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xAllowDeviceEventsReq); REQUEST(xAllowDeviceEventsReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_SIZE_MATCH(xAllowDeviceEventsReq); REQUEST_SIZE_MATCH(xAllowDeviceEventsReq);
swapl(&stuff->time); swapl(&stuff->time);
return(ProcXAllowDeviceEvents(client)); return (ProcXAllowDeviceEvents(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -92,48 +91,44 @@ SProcXAllowDeviceEvents(client) ...@@ -92,48 +91,44 @@ SProcXAllowDeviceEvents(client)
*/ */
int int
ProcXAllowDeviceEvents(client) ProcXAllowDeviceEvents(register ClientPtr client)
register ClientPtr client; {
{ TimeStamp time;
TimeStamp time; DeviceIntPtr thisdev;
DeviceIntPtr thisdev;
REQUEST(xAllowDeviceEventsReq); REQUEST(xAllowDeviceEventsReq);
REQUEST_SIZE_MATCH(xAllowDeviceEventsReq); REQUEST_SIZE_MATCH(xAllowDeviceEventsReq);
thisdev = LookupDeviceIntRec (stuff->deviceid); thisdev = LookupDeviceIntRec(stuff->deviceid);
if (thisdev == NULL) if (thisdev == NULL) {
{
SendErrorToClient(client, IReqCode, X_AllowDeviceEvents, 0, BadDevice); SendErrorToClient(client, IReqCode, X_AllowDeviceEvents, 0, BadDevice);
return Success; return Success;
} }
time = ClientTimeToServerTime(stuff->time); time = ClientTimeToServerTime(stuff->time);
switch (stuff->mode) switch (stuff->mode) {
{ case ReplayThisDevice:
case ReplayThisDevice: AllowSome(client, time, thisdev, NOT_GRABBED);
AllowSome(client, time, thisdev, NOT_GRABBED); break;
break; case SyncThisDevice:
case SyncThisDevice: AllowSome(client, time, thisdev, FREEZE_NEXT_EVENT);
AllowSome(client, time, thisdev, FREEZE_NEXT_EVENT); break;
break; case AsyncThisDevice:
case AsyncThisDevice: AllowSome(client, time, thisdev, THAWED);
AllowSome(client, time, thisdev, THAWED); break;
break; case AsyncOtherDevices:
case AsyncOtherDevices: AllowSome(client, time, thisdev, THAW_OTHERS);
AllowSome(client, time, thisdev, THAW_OTHERS); break;
break; case SyncAll:
case SyncAll: AllowSome(client, time, thisdev, FREEZE_BOTH_NEXT_EVENT);
AllowSome(client, time, thisdev, FREEZE_BOTH_NEXT_EVENT); break;
break; case AsyncAll:
case AsyncAll: AllowSome(client, time, thisdev, THAWED_BOTH);
AllowSome(client, time, thisdev, THAWED_BOTH); break;
break; default:
default: SendErrorToClient(client, IReqCode, X_AllowDeviceEvents, 0, BadValue);
SendErrorToClient(client, IReqCode, X_AllowDeviceEvents, 0, client->errorValue = stuff->mode;
BadValue); return Success;
client->errorValue = stuff->mode;
return Success;
}
return Success;
} }
return Success;
}
...@@ -30,14 +30,10 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,14 +30,10 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef ALLOWEV_H #ifndef ALLOWEV_H
#define ALLOWEV_H 1 #define ALLOWEV_H 1
int int SProcXAllowDeviceEvents(ClientPtr /* client */
SProcXAllowDeviceEvents( );
ClientPtr /* client */
); int ProcXAllowDeviceEvents(ClientPtr /* client */
);
int
ProcXAllowDeviceEvents(
ClientPtr /* client */
);
#endif /* ALLOWEV_H */ #endif /* ALLOWEV_H */
...@@ -55,15 +55,15 @@ SOFTWARE. ...@@ -55,15 +55,15 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> /* control constants */ #include <nx-X11/extensions/XIproto.h> /* control constants */
#include "XIstubs.h" #include "XIstubs.h"
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "chgdctl.h" #include "chgdctl.h"
...@@ -76,15 +76,14 @@ SOFTWARE. ...@@ -76,15 +76,14 @@ SOFTWARE.
*/ */
int int
SProcXChangeDeviceControl(client) SProcXChangeDeviceControl(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xChangeDeviceControlReq); REQUEST(xChangeDeviceControlReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_AT_LEAST_EXTRA_SIZE(xChangeDeviceControlReq, sizeof(xDeviceCtl)); REQUEST_AT_LEAST_EXTRA_SIZE(xChangeDeviceControlReq, sizeof(xDeviceCtl));
swaps(&stuff->control); swaps(&stuff->control);
return(ProcXChangeDeviceControl(client)); return (ProcXChangeDeviceControl(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -93,9 +92,8 @@ SProcXChangeDeviceControl(client) ...@@ -93,9 +92,8 @@ SProcXChangeDeviceControl(client)
*/ */
int int
ProcXChangeDeviceControl(client) ProcXChangeDeviceControl(ClientPtr client)
ClientPtr client; {
{
unsigned len; unsigned len;
int i, status; int i, status;
DeviceIntPtr dev; DeviceIntPtr dev;
...@@ -107,89 +105,73 @@ ProcXChangeDeviceControl(client) ...@@ -107,89 +105,73 @@ ProcXChangeDeviceControl(client)
REQUEST(xChangeDeviceControlReq); REQUEST(xChangeDeviceControlReq);
REQUEST_AT_LEAST_EXTRA_SIZE(xChangeDeviceControlReq, sizeof(xDeviceCtl)); REQUEST_AT_LEAST_EXTRA_SIZE(xChangeDeviceControlReq, sizeof(xDeviceCtl));
len = stuff->length - (sizeof(xChangeDeviceControlReq) >>2); len = stuff->length - (sizeof(xChangeDeviceControlReq) >> 2);
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL) if (dev == NULL) {
{ SendErrorToClient(client, IReqCode, X_ChangeDeviceControl, 0,
SendErrorToClient (client, IReqCode, X_ChangeDeviceControl, 0, BadDevice);
BadDevice);
return Success; return Success;
} }
rep.repType = X_Reply; rep.repType = X_Reply;
rep.RepType = X_ChangeDeviceControl; rep.RepType = X_ChangeDeviceControl;
rep.length = 0; rep.length = 0;
rep.sequenceNumber = client->sequence; rep.sequenceNumber = client->sequence;
switch (stuff->control) switch (stuff->control) {
{ case DEVICE_RESOLUTION:
case DEVICE_RESOLUTION: r = (xDeviceResolutionCtl *) & stuff[1];
r = (xDeviceResolutionCtl *) &stuff[1]; if ((len < (sizeof(xDeviceResolutionCtl) >> 2)) ||
if ((len < (sizeof(xDeviceResolutionCtl)>>2)) || (len != (sizeof(xDeviceResolutionCtl) >> 2) + r->num_valuators)) {
(len != (sizeof(xDeviceResolutionCtl)>>2) + SendErrorToClient(client, IReqCode, X_ChangeDeviceControl,
r->num_valuators)) 0, BadLength);
{ return Success;
SendErrorToClient (client, IReqCode, X_ChangeDeviceControl, }
0, BadLength); if (!dev->valuator) {
return Success; SendErrorToClient(client, IReqCode, X_ChangeDeviceControl, 0,
} BadMatch);
if (!dev->valuator) return Success;
{ }
SendErrorToClient (client, IReqCode, X_ChangeDeviceControl, 0, if ((dev->grab) && !SameClient(dev->grab, client)) {
BadMatch); rep.status = AlreadyGrabbed;
return Success; WriteReplyToClient(client, sizeof(xChangeDeviceControlReply), &rep);
} return Success;
if ((dev->grab) && !SameClient(dev->grab, client)) }
{ resolution = (CARD32 *) (r + 1);
rep.status = AlreadyGrabbed; if (r->first_valuator + r->num_valuators > dev->valuator->numAxes) {
WriteReplyToClient(client, sizeof(xChangeDeviceControlReply), SendErrorToClient(client, IReqCode, X_ChangeDeviceControl, 0,
&rep); BadValue);
return Success; return Success;
} }
resolution = (CARD32 *) (r + 1); status = ChangeDeviceControl(client, dev, (xDeviceCtl *) r);
if (r->first_valuator + r->num_valuators > dev->valuator->numAxes) if (status == Success) {
{ a = &dev->valuator->axes[r->first_valuator];
SendErrorToClient (client, IReqCode, X_ChangeDeviceControl, 0, for (i = 0; i < r->num_valuators; i++)
BadValue); if (*(resolution + i) < (a + i)->min_resolution ||
return Success; *(resolution + i) > (a + i)->max_resolution) {
} SendErrorToClient(client, IReqCode,
status = ChangeDeviceControl(client, dev, (xDeviceCtl*) r); X_ChangeDeviceControl, 0, BadValue);
if (status == Success) return Success;
{
a = &dev->valuator->axes[r->first_valuator];
for (i=0; i<r->num_valuators; i++)
if (*(resolution+i) < (a+i)->min_resolution ||
*(resolution+i) > (a+i)->max_resolution)
{
SendErrorToClient (client, IReqCode,
X_ChangeDeviceControl, 0, BadValue);
return Success;
}
for (i=0; i<r->num_valuators; i++)
(a++)->resolution = *resolution++;
}
else if (status == DeviceBusy)
{
rep.status = DeviceBusy;
WriteReplyToClient(client, sizeof(xChangeDeviceControlReply),
&rep);
return Success;
}
else
{
SendErrorToClient (client, IReqCode, X_ChangeDeviceControl, 0,
BadMatch);
return Success;
} }
break; for (i = 0; i < r->num_valuators; i++)
default: (a++)->resolution = *resolution++;
SendErrorToClient (client, IReqCode, X_ChangeDeviceControl, 0, } else if (status == DeviceBusy) {
BadValue); rep.status = DeviceBusy;
WriteReplyToClient(client, sizeof(xChangeDeviceControlReply), &rep);
return Success;
} else {
SendErrorToClient(client, IReqCode, X_ChangeDeviceControl, 0,
BadMatch);
return Success; return Success;
} }
break;
default:
SendErrorToClient(client, IReqCode, X_ChangeDeviceControl, 0, BadValue);
return Success;
}
WriteReplyToClient(client, sizeof(xChangeDeviceControlReply), &rep); WriteReplyToClient(client, sizeof(xChangeDeviceControlReply), &rep);
return Success; return Success;
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -199,13 +181,10 @@ ProcXChangeDeviceControl(client) ...@@ -199,13 +181,10 @@ ProcXChangeDeviceControl(client)
*/ */
void void
SRepXChangeDeviceControl (client, size, rep) SRepXChangeDeviceControl(ClientPtr client, int size,
ClientPtr client; xChangeDeviceControlReply * rep)
int size; {
xChangeDeviceControlReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef CHGDCTL_H #ifndef CHGDCTL_H
#define CHGDCTL_H 1 #define CHGDCTL_H 1
int int SProcXChangeDeviceControl(ClientPtr /* client */
SProcXChangeDeviceControl( );
ClientPtr /* client */
); int ProcXChangeDeviceControl(ClientPtr /* client */
);
int
ProcXChangeDeviceControl( void SRepXChangeDeviceControl(ClientPtr /* client */ ,
ClientPtr /* client */ int /* size */ ,
); xChangeDeviceControlReply * /* rep */
);
void
SRepXChangeDeviceControl (
ClientPtr /* client */,
int /* size */,
xChangeDeviceControlReply * /* rep */
);
#endif /* CHGDCTL_H */ #endif /* CHGDCTL_H */
...@@ -30,68 +30,52 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,68 +30,52 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef CHGFCTL_H #ifndef CHGFCTL_H
#define CHGFCTL_H 1 #define CHGFCTL_H 1
int int SProcXChangeFeedbackControl(ClientPtr /* client */
SProcXChangeFeedbackControl( );
ClientPtr /* client */
); int ProcXChangeFeedbackControl(ClientPtr /* client */
);
int
ProcXChangeFeedbackControl( int ChangeKbdFeedback(ClientPtr /* client */ ,
ClientPtr /* client */ DeviceIntPtr /* dev */ ,
); unsigned long /* mask */ ,
KbdFeedbackPtr /* k */ ,
int xKbdFeedbackCtl * /* f */
ChangeKbdFeedback ( );
ClientPtr /* client */,
DeviceIntPtr /* dev */, int ChangePtrFeedback(ClientPtr /* client */ ,
unsigned long /* mask */, DeviceIntPtr /* dev */ ,
KbdFeedbackPtr /* k */, unsigned long /* mask */ ,
xKbdFeedbackCtl * /* f */ PtrFeedbackPtr /* p */ ,
); xPtrFeedbackCtl * /* f */
);
int
ChangePtrFeedback ( int ChangeIntegerFeedback(ClientPtr /* client */ ,
ClientPtr /* client */, DeviceIntPtr /* dev */ ,
DeviceIntPtr /* dev */, unsigned long /* mask */ ,
unsigned long /* mask */, IntegerFeedbackPtr /* i */ ,
PtrFeedbackPtr /* p */, xIntegerFeedbackCtl * /* f */
xPtrFeedbackCtl * /* f */ );
);
int ChangeStringFeedback(ClientPtr /* client */ ,
int DeviceIntPtr /* dev */ ,
ChangeIntegerFeedback ( unsigned long /* mask */ ,
ClientPtr /* client */, StringFeedbackPtr /* s */ ,
DeviceIntPtr /* dev */, xStringFeedbackCtl * /* f */
unsigned long /* mask */, );
IntegerFeedbackPtr /* i */,
xIntegerFeedbackCtl * /* f */ int ChangeBellFeedback(ClientPtr /* client */ ,
); DeviceIntPtr /* dev */ ,
unsigned long /* mask */ ,
int BellFeedbackPtr /* b */ ,
ChangeStringFeedback ( xBellFeedbackCtl * /* f */
ClientPtr /* client */, );
DeviceIntPtr /* dev */,
unsigned long /* mask */, int ChangeLedFeedback(ClientPtr /* client */ ,
StringFeedbackPtr /* s */, DeviceIntPtr /* dev */ ,
xStringFeedbackCtl * /* f */ unsigned long /* mask */ ,
); LedFeedbackPtr /* l */ ,
xLedFeedbackCtl * /* f */
int );
ChangeBellFeedback (
ClientPtr /* client */,
DeviceIntPtr /* dev */,
unsigned long /* mask */,
BellFeedbackPtr /* b */,
xBellFeedbackCtl * /* f */
);
int
ChangeLedFeedback (
ClientPtr /* client */,
DeviceIntPtr /* dev */,
unsigned long /* mask */,
LedFeedbackPtr /* l */,
xLedFeedbackCtl * /* f */
);
#endif /* CHGFCTL_H */ #endif /* CHGFCTL_H */
...@@ -55,15 +55,15 @@ SOFTWARE. ...@@ -55,15 +55,15 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "XIstubs.h" #include "XIstubs.h"
#include "globals.h" #include "globals.h"
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exevents.h" #include "exevents.h"
#include "exglobals.h" #include "exglobals.h"
...@@ -78,14 +78,13 @@ SOFTWARE. ...@@ -78,14 +78,13 @@ SOFTWARE.
*/ */
int int
SProcXChangeKeyboardDevice(client) SProcXChangeKeyboardDevice(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xChangeKeyboardDeviceReq); REQUEST(xChangeKeyboardDeviceReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_SIZE_MATCH(xChangeKeyboardDeviceReq); REQUEST_SIZE_MATCH(xChangeKeyboardDeviceReq);
return(ProcXChangeKeyboardDevice(client)); return (ProcXChangeKeyboardDevice(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -95,17 +94,16 @@ SProcXChangeKeyboardDevice(client) ...@@ -95,17 +94,16 @@ SProcXChangeKeyboardDevice(client)
*/ */
int int
ProcXChangeKeyboardDevice (client) ProcXChangeKeyboardDevice(register ClientPtr client)
register ClientPtr client; {
{ int i;
int i; DeviceIntPtr xkbd = inputInfo.keyboard;
DeviceIntPtr xkbd = inputInfo.keyboard; DeviceIntPtr dev;
DeviceIntPtr dev; FocusClassPtr xf = xkbd->focus;
FocusClassPtr xf = xkbd->focus; FocusClassPtr df;
FocusClassPtr df; KeyClassPtr k;
KeyClassPtr k; xChangeKeyboardDeviceReply rep;
xChangeKeyboardDeviceReply rep; changeDeviceNotify ev;
changeDeviceNotify ev;
REQUEST(xChangeKeyboardDeviceReq); REQUEST(xChangeKeyboardDeviceReq);
REQUEST_SIZE_MATCH(xChangeKeyboardDeviceReq); REQUEST_SIZE_MATCH(xChangeKeyboardDeviceReq);
...@@ -115,79 +113,75 @@ ProcXChangeKeyboardDevice (client) ...@@ -115,79 +113,75 @@ ProcXChangeKeyboardDevice (client)
rep.length = 0; rep.length = 0;
rep.sequenceNumber = client->sequence; rep.sequenceNumber = client->sequence;
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL) if (dev == NULL) {
{
rep.status = -1; rep.status = -1;
SendErrorToClient(client, IReqCode, X_ChangeKeyboardDevice, 0, SendErrorToClient(client, IReqCode, X_ChangeKeyboardDevice, 0,
BadDevice); BadDevice);
return Success; return Success;
} }
k = dev->key; k = dev->key;
if (k == NULL) if (k == NULL) {
{
rep.status = -1; rep.status = -1;
SendErrorToClient(client, IReqCode, X_ChangeKeyboardDevice, 0, SendErrorToClient(client, IReqCode, X_ChangeKeyboardDevice, 0,
BadMatch); BadMatch);
return Success; return Success;
} }
if (((dev->grab) && !SameClient(dev->grab, client)) || if (((dev->grab) && !SameClient(dev->grab, client)) ||
((xkbd->grab) && !SameClient(xkbd->grab, client))) ((xkbd->grab) && !SameClient(xkbd->grab, client)))
rep.status = AlreadyGrabbed; rep.status = AlreadyGrabbed;
else if ((dev->sync.frozen && else if ((dev->sync.frozen &&
dev->sync.other && !SameClient(dev->sync.other, client)) || dev->sync.other && !SameClient(dev->sync.other, client)) ||
(xkbd->sync.frozen && (xkbd->sync.frozen &&
xkbd->sync.other && !SameClient(xkbd->sync.other, client))) xkbd->sync.other && !SameClient(xkbd->sync.other, client)))
rep.status = GrabFrozen; rep.status = GrabFrozen;
else else {
{ if (ChangeKeyboardDevice(xkbd, dev) != Success) {
if (ChangeKeyboardDevice (xkbd, dev) != Success) SendErrorToClient(client, IReqCode, X_ChangeKeyboardDevice, 0,
{ BadDevice);
SendErrorToClient(client, IReqCode, X_ChangeKeyboardDevice, 0,
BadDevice);
return Success; return Success;
} }
if (!dev->focus) if (!dev->focus)
InitFocusClassDeviceStruct (dev); InitFocusClassDeviceStruct(dev);
if (!dev->kbdfeed) if (!dev->kbdfeed)
InitKbdFeedbackClassDeviceStruct(dev, (BellProcPtr)NoopDDA, InitKbdFeedbackClassDeviceStruct(dev, (BellProcPtr) NoopDDA,
(KbdCtrlProcPtr)NoopDDA); (KbdCtrlProcPtr) NoopDDA);
df = dev->focus; df = dev->focus;
df->win = xf->win; df->win = xf->win;
df->revert = xf->revert; df->revert = xf->revert;
df->time = xf->time; df->time = xf->time;
df->traceGood = xf->traceGood; df->traceGood = xf->traceGood;
if (df->traceSize != xf->traceSize) if (df->traceSize != xf->traceSize) {
{ Must_have_memory = TRUE; /* XXX */
Must_have_memory = TRUE; /* XXX */ df->trace = (WindowPtr *) realloc(df->trace,
df->trace = (WindowPtr *) realloc(df->trace, xf->traceSize *
xf->traceSize * sizeof(WindowPtr)); sizeof(WindowPtr));
Must_have_memory = FALSE; /* XXX */ Must_have_memory = FALSE; /* XXX */
} }
df->traceSize = xf->traceSize; df->traceSize = xf->traceSize;
for (i=0; i<df->traceSize; i++) for (i = 0; i < df->traceSize; i++)
df->trace[i] = xf->trace[i]; df->trace[i] = xf->trace[i];
RegisterOtherDevice (xkbd); RegisterOtherDevice(xkbd);
RegisterKeyboardDevice (dev); RegisterKeyboardDevice(dev);
ev.type = ChangeDeviceNotify; ev.type = ChangeDeviceNotify;
ev.deviceid = stuff->deviceid; ev.deviceid = stuff->deviceid;
ev.time = currentTime.milliseconds; ev.time = currentTime.milliseconds;
ev.request = NewKeyboard; ev.request = NewKeyboard;
SendEventToAllWindows (dev, ChangeDeviceNotifyMask, (xEvent *)&ev, 1); SendEventToAllWindows(dev, ChangeDeviceNotifyMask, (xEvent *) & ev, 1);
SendMappingNotify (MappingKeyboard, k->curKeySyms.minKeyCode, SendMappingNotify(MappingKeyboard, k->curKeySyms.minKeyCode,
k->curKeySyms.maxKeyCode - k->curKeySyms.minKeyCode + 1,client); k->curKeySyms.maxKeyCode - k->curKeySyms.minKeyCode +
1, client);
rep.status = 0; rep.status = 0;
} }
WriteReplyToClient (client, sizeof (xChangeKeyboardDeviceReply), WriteReplyToClient(client, sizeof(xChangeKeyboardDeviceReply), &rep);
&rep);
return Success; return Success;
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -197,12 +191,10 @@ ProcXChangeKeyboardDevice (client) ...@@ -197,12 +191,10 @@ ProcXChangeKeyboardDevice (client)
*/ */
void void
SRepXChangeKeyboardDevice (client, size, rep) SRepXChangeKeyboardDevice(ClientPtr client, int size,
ClientPtr client; xChangeKeyboardDeviceReply * rep)
int size; {
xChangeKeyboardDeviceReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,22 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,22 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef CHGKBD_H #ifndef CHGKBD_H
#define CHGKBD_H 1 #define CHGKBD_H 1
int int SProcXChangeKeyboardDevice(ClientPtr /* client */
SProcXChangeKeyboardDevice( );
ClientPtr /* client */
);
int
ProcXChangeKeyboardDevice (
ClientPtr /* client */
);
void
SRepXChangeKeyboardDevice (
ClientPtr /* client */,
int /* size */,
xChangeKeyboardDeviceReply * /* rep */
);
int ProcXChangeKeyboardDevice(ClientPtr /* client */
);
void SRepXChangeKeyboardDevice(ClientPtr /* client */ ,
int /* size */ ,
xChangeKeyboardDeviceReply * /* rep */
);
#endif /* CHGKBD_H */ #endif /* CHGKBD_H */
...@@ -55,13 +55,13 @@ SOFTWARE. ...@@ -55,13 +55,13 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exevents.h" #include "exevents.h"
#include "exglobals.h" #include "exglobals.h"
...@@ -75,9 +75,8 @@ SOFTWARE. ...@@ -75,9 +75,8 @@ SOFTWARE.
*/ */
int int
SProcXChangeDeviceKeyMapping(client) SProcXChangeDeviceKeyMapping(register ClientPtr client)
register ClientPtr client; {
{
unsigned int count; unsigned int count;
REQUEST(xChangeDeviceKeyMappingReq); REQUEST(xChangeDeviceKeyMappingReq);
...@@ -86,8 +85,8 @@ SProcXChangeDeviceKeyMapping(client) ...@@ -86,8 +85,8 @@ SProcXChangeDeviceKeyMapping(client)
count = stuff->keyCodes * stuff->keySymsPerKeyCode; count = stuff->keyCodes * stuff->keySymsPerKeyCode;
REQUEST_FIXED_SIZE(xChangeDeviceKeyMappingReq, count * sizeof(CARD32)); REQUEST_FIXED_SIZE(xChangeDeviceKeyMappingReq, count * sizeof(CARD32));
SwapLongs((CARD32 *) (&stuff[1]), count); SwapLongs((CARD32 *) (&stuff[1]), count);
return(ProcXChangeDeviceKeyMapping(client)); return (ProcXChangeDeviceKeyMapping(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -96,10 +95,9 @@ SProcXChangeDeviceKeyMapping(client) ...@@ -96,10 +95,9 @@ SProcXChangeDeviceKeyMapping(client)
*/ */
int int
ProcXChangeDeviceKeyMapping(client) ProcXChangeDeviceKeyMapping(register ClientPtr client)
register ClientPtr client; {
{ int ret;
int ret;
unsigned len; unsigned len;
DeviceIntPtr dev; DeviceIntPtr dev;
unsigned int count; unsigned int count;
...@@ -110,21 +108,19 @@ ProcXChangeDeviceKeyMapping(client) ...@@ -110,21 +108,19 @@ ProcXChangeDeviceKeyMapping(client)
count = stuff->keyCodes * stuff->keySymsPerKeyCode; count = stuff->keyCodes * stuff->keySymsPerKeyCode;
REQUEST_FIXED_SIZE(xChangeDeviceKeyMappingReq, count * sizeof(CARD32)); REQUEST_FIXED_SIZE(xChangeDeviceKeyMappingReq, count * sizeof(CARD32));
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL) if (dev == NULL) {
{ SendErrorToClient(client, IReqCode, X_ChangeDeviceKeyMapping, 0,
SendErrorToClient (client, IReqCode, X_ChangeDeviceKeyMapping, 0, BadDevice);
BadDevice);
return Success; return Success;
} }
len = stuff->length - (sizeof(xChangeDeviceKeyMappingReq) >> 2); len = stuff->length - (sizeof(xChangeDeviceKeyMappingReq) >> 2);
ret = ChangeKeyMapping (client, dev, len, DeviceMappingNotify, ret = ChangeKeyMapping(client, dev, len, DeviceMappingNotify,
stuff->firstKeyCode, stuff->keyCodes, stuff->keySymsPerKeyCode, stuff->firstKeyCode, stuff->keyCodes,
(KeySym *)&stuff[1]); stuff->keySymsPerKeyCode, (KeySym *) & stuff[1]);
if (ret != Success) if (ret != Success)
SendErrorToClient (client, IReqCode, X_ChangeDeviceKeyMapping, 0, SendErrorToClient(client, IReqCode, X_ChangeDeviceKeyMapping, 0, ret);
ret);
return Success; return Success;
} }
...@@ -30,14 +30,10 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,14 +30,10 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef CHGKMAP_H #ifndef CHGKMAP_H
#define CHGKMAP_H 1 #define CHGKMAP_H 1
int int SProcXChangeDeviceKeyMapping(ClientPtr /* client */
SProcXChangeDeviceKeyMapping( );
ClientPtr /* client */
); int ProcXChangeDeviceKeyMapping(ClientPtr /* client */
);
int
ProcXChangeDeviceKeyMapping(
ClientPtr /* client */
);
#endif /* CHGKMAP_H */ #endif /* CHGKMAP_H */
...@@ -55,14 +55,14 @@ SOFTWARE. ...@@ -55,14 +55,14 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include "windowstr.h" #include "windowstr.h"
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exevents.h" #include "exevents.h"
#include "exglobals.h" #include "exglobals.h"
...@@ -77,9 +77,8 @@ SOFTWARE. ...@@ -77,9 +77,8 @@ SOFTWARE.
*/ */
int int
SProcXChangeDeviceDontPropagateList(client) SProcXChangeDeviceDontPropagateList(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xChangeDeviceDontPropagateListReq); REQUEST(xChangeDeviceDontPropagateListReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_AT_LEAST_SIZE(xChangeDeviceDontPropagateListReq); REQUEST_AT_LEAST_SIZE(xChangeDeviceDontPropagateListReq);
...@@ -88,8 +87,8 @@ SProcXChangeDeviceDontPropagateList(client) ...@@ -88,8 +87,8 @@ SProcXChangeDeviceDontPropagateList(client)
REQUEST_FIXED_SIZE(xChangeDeviceDontPropagateListReq, REQUEST_FIXED_SIZE(xChangeDeviceDontPropagateListReq,
stuff->count * sizeof(CARD32)); stuff->count * sizeof(CARD32));
SwapLongs((CARD32 *) (&stuff[1]), stuff->count); SwapLongs((CARD32 *) (&stuff[1]), stuff->count);
return(ProcXChangeDeviceDontPropagateList(client)); return (ProcXChangeDeviceDontPropagateList(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -98,51 +97,47 @@ SProcXChangeDeviceDontPropagateList(client) ...@@ -98,51 +97,47 @@ SProcXChangeDeviceDontPropagateList(client)
*/ */
int int
ProcXChangeDeviceDontPropagateList (client) ProcXChangeDeviceDontPropagateList(register ClientPtr client)
register ClientPtr client; {
{ int i;
int i; WindowPtr pWin;
WindowPtr pWin; struct tmask tmp[EMASKSIZE];
struct tmask tmp[EMASKSIZE]; OtherInputMasks *others;
OtherInputMasks *others;
REQUEST(xChangeDeviceDontPropagateListReq); REQUEST(xChangeDeviceDontPropagateListReq);
REQUEST_AT_LEAST_SIZE(xChangeDeviceDontPropagateListReq); REQUEST_AT_LEAST_SIZE(xChangeDeviceDontPropagateListReq);
if (stuff->length !=(sizeof(xChangeDeviceDontPropagateListReq)>>2) + if (stuff->length != (sizeof(xChangeDeviceDontPropagateListReq) >> 2) +
stuff->count) stuff->count) {
{ SendErrorToClient(client, IReqCode, X_ChangeDeviceDontPropagateList, 0,
SendErrorToClient (client, IReqCode, X_ChangeDeviceDontPropagateList, 0, BadLength);
BadLength);
return Success; return Success;
} }
pWin = (WindowPtr) LookupWindow (stuff->window, client); pWin = (WindowPtr) LookupWindow(stuff->window, client);
if (!pWin) if (!pWin) {
{
client->errorValue = stuff->window; client->errorValue = stuff->window;
SendErrorToClient(client, IReqCode, X_ChangeDeviceDontPropagateList, 0, SendErrorToClient(client, IReqCode, X_ChangeDeviceDontPropagateList, 0,
BadWindow); BadWindow);
return Success; return Success;
} }
if (stuff->mode != AddToList && stuff->mode != DeleteFromList) if (stuff->mode != AddToList && stuff->mode != DeleteFromList) {
{
client->errorValue = stuff->window; client->errorValue = stuff->window;
SendErrorToClient(client, IReqCode, X_ChangeDeviceDontPropagateList, 0, SendErrorToClient(client, IReqCode, X_ChangeDeviceDontPropagateList, 0,
BadMode); BadMode);
return Success; return Success;
} }
if (CreateMaskFromList (client, (XEventClass *)&stuff[1], if (CreateMaskFromList(client, (XEventClass *) & stuff[1],
stuff->count, tmp, NULL, X_ChangeDeviceDontPropagateList) != Success) stuff->count, tmp, NULL,
return Success; X_ChangeDeviceDontPropagateList) != Success)
return Success;
others = wOtherInputMasks(pWin); others = wOtherInputMasks(pWin);
if (!others && stuff->mode == DeleteFromList) if (!others && stuff->mode == DeleteFromList)
return Success; return Success;
for (i=0; i<EMASKSIZE; i++) for (i = 0; i < EMASKSIZE; i++) {
{
if (tmp[i].mask == 0) if (tmp[i].mask == 0)
continue; continue;
...@@ -151,13 +146,13 @@ ProcXChangeDeviceDontPropagateList (client) ...@@ -151,13 +146,13 @@ ProcXChangeDeviceDontPropagateList (client)
else if (others) else if (others)
tmp[i].mask |= others->dontPropagateMask[i]; tmp[i].mask |= others->dontPropagateMask[i];
if (DeviceEventSuppressForWindow (pWin,client,tmp[i].mask,i) != Success) if (DeviceEventSuppressForWindow(pWin, client, tmp[i].mask, i) !=
{ Success) {
SendErrorToClient ( client, IReqCode, X_ChangeDeviceDontPropagateList, 0, SendErrorToClient(client, IReqCode,
BadClass); X_ChangeDeviceDontPropagateList, 0, BadClass);
return Success; return Success;
}
} }
}
return Success; return Success;
} }
...@@ -30,14 +30,10 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,14 +30,10 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef CHGPROP_H #ifndef CHGPROP_H
#define CHGPROP_H 1 #define CHGPROP_H 1
int int SProcXChangeDeviceDontPropagateList(ClientPtr /* client */
SProcXChangeDeviceDontPropagateList ( );
ClientPtr /* client */
); int ProcXChangeDeviceDontPropagateList(ClientPtr /* client */
);
int
ProcXChangeDeviceDontPropagateList (
ClientPtr /* client */
);
#endif /* CHGPROP_H */ #endif /* CHGPROP_H */
...@@ -55,17 +55,17 @@ SOFTWARE. ...@@ -55,17 +55,17 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "XIstubs.h" #include "XIstubs.h"
#include "windowstr.h" /* window structure */ #include "windowstr.h" /* window structure */
#include "scrnintstr.h" /* screen structure */ #include "scrnintstr.h" /* screen structure */
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "dixevents.h" #include "dixevents.h"
#include "exevents.h" #include "exevents.h"
...@@ -81,14 +81,13 @@ SOFTWARE. ...@@ -81,14 +81,13 @@ SOFTWARE.
*/ */
int int
SProcXChangePointerDevice(client) SProcXChangePointerDevice(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xChangePointerDeviceReq); REQUEST(xChangePointerDeviceReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_SIZE_MATCH(xChangePointerDeviceReq); REQUEST_SIZE_MATCH(xChangePointerDeviceReq);
return(ProcXChangePointerDevice(client)); return (ProcXChangePointerDevice(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -97,14 +96,13 @@ SProcXChangePointerDevice(client) ...@@ -97,14 +96,13 @@ SProcXChangePointerDevice(client)
*/ */
int int
ProcXChangePointerDevice (client) ProcXChangePointerDevice(register ClientPtr client)
register ClientPtr client; {
{ DeviceIntPtr xptr = inputInfo.pointer;
DeviceIntPtr xptr = inputInfo.pointer; DeviceIntPtr dev;
DeviceIntPtr dev; ValuatorClassPtr v;
ValuatorClassPtr v; xChangePointerDeviceReply rep;
xChangePointerDeviceReply rep; changeDeviceNotify ev;
changeDeviceNotify ev;
REQUEST(xChangePointerDeviceReq); REQUEST(xChangePointerDeviceReq);
REQUEST_SIZE_MATCH(xChangePointerDeviceReq); REQUEST_SIZE_MATCH(xChangePointerDeviceReq);
...@@ -114,75 +112,68 @@ ProcXChangePointerDevice (client) ...@@ -114,75 +112,68 @@ ProcXChangePointerDevice (client)
rep.length = 0; rep.length = 0;
rep.sequenceNumber = client->sequence; rep.sequenceNumber = client->sequence;
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL) if (dev == NULL) {
{
rep.status = -1; rep.status = -1;
SendErrorToClient(client, IReqCode, X_ChangePointerDevice, 0, SendErrorToClient(client, IReqCode, X_ChangePointerDevice, 0,
BadDevice); BadDevice);
return Success; return Success;
} }
v = dev->valuator; v = dev->valuator;
if (v == NULL || v->numAxes < 2 || if (v == NULL || v->numAxes < 2 ||
stuff->xaxis >= v->numAxes || stuff->xaxis >= v->numAxes || stuff->yaxis >= v->numAxes) {
stuff->yaxis >= v->numAxes)
{
rep.status = -1; rep.status = -1;
SendErrorToClient(client, IReqCode, X_ChangePointerDevice, 0, BadMatch); SendErrorToClient(client, IReqCode, X_ChangePointerDevice, 0, BadMatch);
return Success; return Success;
} }
if (((dev->grab) && !SameClient(dev->grab, client)) || if (((dev->grab) && !SameClient(dev->grab, client)) ||
((xptr->grab) && !SameClient(xptr->grab, client))) ((xptr->grab) && !SameClient(xptr->grab, client)))
rep.status = AlreadyGrabbed; rep.status = AlreadyGrabbed;
else if ((dev->sync.frozen && else if ((dev->sync.frozen &&
dev->sync.other && !SameClient(dev->sync.other, client)) || dev->sync.other && !SameClient(dev->sync.other, client)) ||
(xptr->sync.frozen && (xptr->sync.frozen &&
xptr->sync.other && !SameClient(xptr->sync.other, client))) xptr->sync.other && !SameClient(xptr->sync.other, client)))
rep.status = GrabFrozen; rep.status = GrabFrozen;
else else {
{ if (ChangePointerDevice(xptr, dev, stuff->xaxis, stuff->yaxis) !=
if (ChangePointerDevice ( Success) {
xptr, dev, stuff->xaxis, stuff->yaxis) != Success) SendErrorToClient(client, IReqCode, X_ChangePointerDevice, 0,
{ BadDevice);
SendErrorToClient(client, IReqCode, X_ChangePointerDevice, 0,
BadDevice);
return Success; return Success;
} }
if (dev->focus) if (dev->focus)
DeleteFocusClassDeviceStruct(dev); DeleteFocusClassDeviceStruct(dev);
if (!dev->button) if (!dev->button)
InitButtonClassDeviceStruct (dev, 0, NULL); InitButtonClassDeviceStruct(dev, 0, NULL);
if (!dev->ptrfeed) if (!dev->ptrfeed)
InitPtrFeedbackClassDeviceStruct(dev, (PtrCtrlProcPtr)NoopDDA); InitPtrFeedbackClassDeviceStruct(dev, (PtrCtrlProcPtr) NoopDDA);
RegisterOtherDevice (xptr); RegisterOtherDevice(xptr);
RegisterPointerDevice (dev); RegisterPointerDevice(dev);
ev.type = ChangeDeviceNotify; ev.type = ChangeDeviceNotify;
ev.deviceid = stuff->deviceid; ev.deviceid = stuff->deviceid;
ev.time = currentTime.milliseconds; ev.time = currentTime.milliseconds;
ev.request = NewPointer; ev.request = NewPointer;
SendEventToAllWindows (dev, ChangeDeviceNotifyMask, (xEvent *)&ev, 1); SendEventToAllWindows(dev, ChangeDeviceNotifyMask, (xEvent *) & ev, 1);
SendMappingNotify (MappingPointer, 0, 0, client); SendMappingNotify(MappingPointer, 0, 0, client);
rep.status = 0; rep.status = 0;
} }
WriteReplyToClient (client, sizeof (xChangePointerDeviceReply), WriteReplyToClient(client, sizeof(xChangePointerDeviceReply), &rep);
&rep);
return Success; return Success;
} }
void void
DeleteFocusClassDeviceStruct(dev) DeleteFocusClassDeviceStruct(DeviceIntPtr dev)
DeviceIntPtr dev; {
{
free(dev->focus->trace); free(dev->focus->trace);
free(dev->focus); free(dev->focus);
dev->focus = NULL; dev->focus = NULL;
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -191,23 +182,18 @@ DeleteFocusClassDeviceStruct(dev) ...@@ -191,23 +182,18 @@ DeleteFocusClassDeviceStruct(dev)
*/ */
void void
SendEventToAllWindows (dev, mask, ev, count) SendEventToAllWindows(DeviceIntPtr dev, Mask mask, xEvent * ev, int count)
DeviceIntPtr dev; {
Mask mask;
xEvent *ev;
int count;
{
int i; int i;
WindowPtr pWin, p1; WindowPtr pWin, p1;
for (i=0; i<screenInfo.numScreens; i++) for (i = 0; i < screenInfo.numScreens; i++) {
{
pWin = screenInfo.screens[i]->root; pWin = screenInfo.screens[i]->root;
(void)DeliverEventsToWindow(pWin, ev, count, mask, NullGrab, dev->id); (void)DeliverEventsToWindow(pWin, ev, count, mask, NullGrab, dev->id);
p1 = pWin->firstChild; p1 = pWin->firstChild;
FindInterestedChildren (dev, p1, mask, ev, count); FindInterestedChildren(dev, p1, mask, ev, count);
}
} }
}
/*********************************************************************** /***********************************************************************
* *
...@@ -217,23 +203,18 @@ SendEventToAllWindows (dev, mask, ev, count) ...@@ -217,23 +203,18 @@ SendEventToAllWindows (dev, mask, ev, count)
*/ */
void void
FindInterestedChildren (dev, p1, mask, ev, count) FindInterestedChildren(DeviceIntPtr dev, WindowPtr p1, Mask mask,
DeviceIntPtr dev; xEvent * ev, int count)
WindowPtr p1; {
Mask mask;
xEvent *ev;
int count;
{
WindowPtr p2; WindowPtr p2;
while (p1) while (p1) {
{ p2 = p1->firstChild;
p2 = p1->firstChild;
(void)DeliverEventsToWindow(p1, ev, count, mask, NullGrab, dev->id); (void)DeliverEventsToWindow(p1, ev, count, mask, NullGrab, dev->id);
FindInterestedChildren (dev, p2, mask, ev, count); FindInterestedChildren(dev, p2, mask, ev, count);
p1 = p1->nextSib; p1 = p1->nextSib;
}
} }
}
/*********************************************************************** /***********************************************************************
* *
...@@ -243,12 +224,10 @@ FindInterestedChildren (dev, p1, mask, ev, count) ...@@ -243,12 +224,10 @@ FindInterestedChildren (dev, p1, mask, ev, count)
*/ */
void void
SRepXChangePointerDevice (client, size, rep) SRepXChangePointerDevice(ClientPtr client, int size,
ClientPtr client; xChangePointerDeviceReply * rep)
int size; {
xChangePointerDeviceReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,43 +30,32 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,43 +30,32 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef CHGPTR_H #ifndef CHGPTR_H
#define CHGPTR_H 1 #define CHGPTR_H 1
int int SProcXChangePointerDevice(ClientPtr /* client */
SProcXChangePointerDevice( );
ClientPtr /* client */
); int ProcXChangePointerDevice(ClientPtr /* client */
);
int
ProcXChangePointerDevice ( void DeleteFocusClassDeviceStruct(DeviceIntPtr /* dev */
ClientPtr /* client */ );
);
void SendEventToAllWindows(DeviceIntPtr /* dev */ ,
void Mask /* mask */ ,
DeleteFocusClassDeviceStruct( xEvent * /* ev */ ,
DeviceIntPtr /* dev */ int /* count */
); );
void void FindInterestedChildren( /* FIXME: could be static? */
SendEventToAllWindows ( DeviceIntPtr /* dev */ ,
DeviceIntPtr /* dev */, WindowPtr /* p1 */ ,
Mask /* mask */, Mask /* mask */ ,
xEvent * /* ev */, xEvent * /* ev */ ,
int /* count */ int /* count */
); );
void void SRepXChangePointerDevice(ClientPtr /* client */ ,
FindInterestedChildren ( /* FIXME: could be static? */ int /* size */ ,
DeviceIntPtr /* dev */, xChangePointerDeviceReply * /* rep */
WindowPtr /* p1 */, );
Mask /* mask */,
xEvent * /* ev */,
int /* count */
);
void
SRepXChangePointerDevice (
ClientPtr /* client */,
int /* size */,
xChangePointerDeviceReply * /* rep */
);
#endif /* CHGPTR_H */ #endif /* CHGPTR_H */
...@@ -55,16 +55,16 @@ SOFTWARE. ...@@ -55,16 +55,16 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include "windowstr.h" /* window structure */ #include "windowstr.h" /* window structure */
#include "scrnintstr.h" /* screen structure */ #include "scrnintstr.h" /* screen structure */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "XIstubs.h" #include "XIstubs.h"
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "closedev.h" #include "closedev.h"
...@@ -76,14 +76,13 @@ SOFTWARE. ...@@ -76,14 +76,13 @@ SOFTWARE.
*/ */
int int
SProcXCloseDevice(client) SProcXCloseDevice(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xCloseDeviceReq); REQUEST(xCloseDeviceReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_SIZE_MATCH(xCloseDeviceReq); REQUEST_SIZE_MATCH(xCloseDeviceReq);
return(ProcXCloseDevice(client)); return (ProcXCloseDevice(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -92,41 +91,38 @@ SProcXCloseDevice(client) ...@@ -92,41 +91,38 @@ SProcXCloseDevice(client)
*/ */
int int
ProcXCloseDevice(client) ProcXCloseDevice(register ClientPtr client)
register ClientPtr client; {
{ int i;
int i; WindowPtr pWin, p1;
WindowPtr pWin, p1; DeviceIntPtr d;
DeviceIntPtr d;
REQUEST(xCloseDeviceReq); REQUEST(xCloseDeviceReq);
REQUEST_SIZE_MATCH(xCloseDeviceReq); REQUEST_SIZE_MATCH(xCloseDeviceReq);
d = LookupDeviceIntRec (stuff->deviceid); d = LookupDeviceIntRec(stuff->deviceid);
if (d == NULL) if (d == NULL) {
{
SendErrorToClient(client, IReqCode, X_CloseDevice, 0, BadDevice); SendErrorToClient(client, IReqCode, X_CloseDevice, 0, BadDevice);
return Success; return Success;
} }
if (d->grab && SameClient(d->grab, client)) if (d->grab && SameClient(d->grab, client))
(*d->DeactivateGrab)(d); /* release active grab */ (*d->DeactivateGrab) (d); /* release active grab */
/* Remove event selections from all windows for events from this device /* Remove event selections from all windows for events from this device
and selected by this client. * and selected by this client.
Delete passive grabs from all windows for this device. */ * Delete passive grabs from all windows for this device. */
for (i=0; i<screenInfo.numScreens; i++) for (i = 0; i < screenInfo.numScreens; i++) {
{
pWin = screenInfo.screens[i]->root; pWin = screenInfo.screens[i]->root;
DeleteDeviceEvents (d, pWin, client); DeleteDeviceEvents(d, pWin, client);
p1 = pWin->firstChild; p1 = pWin->firstChild;
DeleteEventsFromChildren (d, p1, client); DeleteEventsFromChildren(d, p1, client);
} }
CloseInputDevice (d, client); CloseInputDevice(d, client);
return Success; return Success;
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -136,21 +132,17 @@ ProcXCloseDevice(client) ...@@ -136,21 +132,17 @@ ProcXCloseDevice(client)
*/ */
void void
DeleteEventsFromChildren(dev, p1, client) DeleteEventsFromChildren(DeviceIntPtr dev, WindowPtr p1, ClientPtr client)
DeviceIntPtr dev; {
WindowPtr p1;
ClientPtr client;
{
WindowPtr p2; WindowPtr p2;
while (p1) while (p1) {
{ p2 = p1->firstChild;
p2 = p1->firstChild; DeleteDeviceEvents(dev, p1, client);
DeleteDeviceEvents (dev, p1, client);
DeleteEventsFromChildren(dev, p2, client); DeleteEventsFromChildren(dev, p2, client);
p1 = p1->nextSib; p1 = p1->nextSib;
}
} }
}
/*********************************************************************** /***********************************************************************
* *
...@@ -160,26 +152,21 @@ DeleteEventsFromChildren(dev, p1, client) ...@@ -160,26 +152,21 @@ DeleteEventsFromChildren(dev, p1, client)
*/ */
void void
DeleteDeviceEvents (dev, pWin, client) DeleteDeviceEvents(DeviceIntPtr dev, WindowPtr pWin, ClientPtr client)
DeviceIntPtr dev; {
WindowPtr pWin; InputClientsPtr others;
ClientPtr client; OtherInputMasks *pOthers;
{ GrabPtr grab, next;
InputClientsPtr others;
OtherInputMasks *pOthers;
GrabPtr grab, next;
if ((pOthers = wOtherInputMasks(pWin)) != 0) if ((pOthers = wOtherInputMasks(pWin)) != 0)
for (others=pOthers->inputClients; others; for (others = pOthers->inputClients; others; others = others->next)
others = others->next) if (SameClient(others, client))
if (SameClient(others,client))
others->mask[dev->id] = NoEventMask; others->mask[dev->id] = NoEventMask;
for (grab = wPassiveGrabs(pWin); grab; grab=next) for (grab = wPassiveGrabs(pWin); grab; grab = next) {
{
next = grab->next; next = grab->next;
if ((grab->device == dev) && if ((grab->device == dev) &&
(client->clientAsMask == CLIENT_BITS(grab->resource))) (client->clientAsMask == CLIENT_BITS(grab->resource)))
FreeResource (grab->resource, RT_NONE); FreeResource(grab->resource, RT_NONE);
}
} }
}
...@@ -30,28 +30,20 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,28 +30,20 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef CLOSEDEV_H #ifndef CLOSEDEV_H
#define CLOSEDEV_H 1 #define CLOSEDEV_H 1
int int SProcXCloseDevice(ClientPtr /* client */
SProcXCloseDevice( );
ClientPtr /* client */
); int ProcXCloseDevice(ClientPtr /* client */
);
int
ProcXCloseDevice( void DeleteEventsFromChildren(DeviceIntPtr /* dev */ ,
ClientPtr /* client */ WindowPtr /* p1 */ ,
); ClientPtr /* client */
);
void
DeleteEventsFromChildren( void DeleteDeviceEvents(DeviceIntPtr /* dev */ ,
DeviceIntPtr /* dev */, WindowPtr /* pWin */ ,
WindowPtr /* p1 */, ClientPtr /* client */
ClientPtr /* client */ );
);
void
DeleteDeviceEvents (
DeviceIntPtr /* dev */,
WindowPtr /* pWin */,
ClientPtr /* client */
);
#endif /* CLOSEDEV_H */ #endif /* CLOSEDEV_H */
...@@ -55,13 +55,13 @@ SOFTWARE. ...@@ -55,13 +55,13 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "devbell.h" #include "devbell.h"
...@@ -74,13 +74,12 @@ SOFTWARE. ...@@ -74,13 +74,12 @@ SOFTWARE.
*/ */
int int
SProcXDeviceBell(client) SProcXDeviceBell(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xDeviceBellReq); REQUEST(xDeviceBellReq);
swaps(&stuff->length); swaps(&stuff->length);
return(ProcXDeviceBell(client)); return (ProcXDeviceBell(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -89,9 +88,8 @@ SProcXDeviceBell(client) ...@@ -89,9 +88,8 @@ SProcXDeviceBell(client)
*/ */
int int
ProcXDeviceBell (client) ProcXDeviceBell(register ClientPtr client)
register ClientPtr client; {
{
DeviceIntPtr dev; DeviceIntPtr dev;
KbdFeedbackPtr k; KbdFeedbackPtr k;
BellFeedbackPtr b; BellFeedbackPtr b;
...@@ -104,64 +102,55 @@ ProcXDeviceBell (client) ...@@ -104,64 +102,55 @@ ProcXDeviceBell (client)
REQUEST(xDeviceBellReq); REQUEST(xDeviceBellReq);
REQUEST_SIZE_MATCH(xDeviceBellReq); REQUEST_SIZE_MATCH(xDeviceBellReq);
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL) if (dev == NULL) {
{
client->errorValue = stuff->deviceid; client->errorValue = stuff->deviceid;
SendErrorToClient(client, IReqCode, X_DeviceBell, 0, BadDevice); SendErrorToClient(client, IReqCode, X_DeviceBell, 0, BadDevice);
return Success; return Success;
} }
if (stuff->percent < -100 || stuff->percent > 100) if (stuff->percent < -100 || stuff->percent > 100) {
{
client->errorValue = stuff->percent; client->errorValue = stuff->percent;
SendErrorToClient(client, IReqCode, X_DeviceBell, 0, BadValue); SendErrorToClient(client, IReqCode, X_DeviceBell, 0, BadValue);
return Success; return Success;
} }
if (stuff->feedbackclass == KbdFeedbackClass) if (stuff->feedbackclass == KbdFeedbackClass) {
{ for (k = dev->kbdfeed; k; k = k->next)
for (k=dev->kbdfeed; k; k=k->next)
if (k->ctrl.id == stuff->feedbackid) if (k->ctrl.id == stuff->feedbackid)
break; break;
if (!k) if (!k) {
{
client->errorValue = stuff->feedbackid; client->errorValue = stuff->feedbackid;
SendErrorToClient(client, IReqCode, X_DeviceBell, 0, BadValue); SendErrorToClient(client, IReqCode, X_DeviceBell, 0, BadValue);
return Success; return Success;
} }
base = k->ctrl.bell; base = k->ctrl.bell;
proc = k->BellProc; proc = k->BellProc;
ctrl = (void *) &(k->ctrl); ctrl = (void *) &(k->ctrl);
class = KbdFeedbackClass; class = KbdFeedbackClass;
} } else if (stuff->feedbackclass == BellFeedbackClass) {
else if (stuff->feedbackclass == BellFeedbackClass) for (b = dev->bell; b; b = b->next)
{
for (b=dev->bell; b; b=b->next)
if (b->ctrl.id == stuff->feedbackid) if (b->ctrl.id == stuff->feedbackid)
break; break;
if (!b) if (!b) {
{
client->errorValue = stuff->feedbackid; client->errorValue = stuff->feedbackid;
SendErrorToClient(client, IReqCode, X_DeviceBell, 0, BadValue); SendErrorToClient(client, IReqCode, X_DeviceBell, 0, BadValue);
return Success; return Success;
} }
base = b->ctrl.percent; base = b->ctrl.percent;
proc = b->BellProc; proc = b->BellProc;
ctrl = (void *) &(b->ctrl); ctrl = (void *) &(b->ctrl);
class = BellFeedbackClass; class = BellFeedbackClass;
} } else {
else
{
client->errorValue = stuff->feedbackclass; client->errorValue = stuff->feedbackclass;
SendErrorToClient(client, IReqCode, X_DeviceBell, 0, BadValue); SendErrorToClient(client, IReqCode, X_DeviceBell, 0, BadValue);
return Success; return Success;
} }
newpercent = (base * stuff->percent) / 100; newpercent = (base * stuff->percent) / 100;
if (stuff->percent < 0) if (stuff->percent < 0)
newpercent = base + newpercent; newpercent = base + newpercent;
else else
newpercent = base - newpercent + stuff->percent; newpercent = base - newpercent + stuff->percent;
(*proc)(newpercent, dev, ctrl, class); (*proc) (newpercent, dev, ctrl, class);
return Success; return Success;
} }
...@@ -30,14 +30,10 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,14 +30,10 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef DEVBELL_H #ifndef DEVBELL_H
#define DEVBELL_H 1 #define DEVBELL_H 1
int int SProcXDeviceBell(ClientPtr /* client */
SProcXDeviceBell ( );
ClientPtr /* client */
); int ProcXDeviceBell(ClientPtr /* client */
);
int
ProcXDeviceBell (
ClientPtr /* client */
);
#endif /* DEVBELL_H */ #endif /* DEVBELL_H */
...@@ -35,45 +35,45 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -35,45 +35,45 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef EXGLOBALS_H #ifndef EXGLOBALS_H
#define EXGLOBALS_H 1 #define EXGLOBALS_H 1
extern int IReqCode; extern int IReqCode;
extern int BadDevice; extern int BadDevice;
extern int BadEvent; extern int BadEvent;
extern int BadMode; extern int BadMode;
extern int DeviceBusy; extern int DeviceBusy;
extern int BadClass; extern int BadClass;
extern Mask DevicePointerMotionMask; extern Mask DevicePointerMotionMask;
extern Mask DevicePointerMotionHintMask; extern Mask DevicePointerMotionHintMask;
extern Mask DeviceFocusChangeMask; extern Mask DeviceFocusChangeMask;
extern Mask DeviceStateNotifyMask; extern Mask DeviceStateNotifyMask;
extern Mask ChangeDeviceNotifyMask; extern Mask ChangeDeviceNotifyMask;
extern Mask DeviceMappingNotifyMask; extern Mask DeviceMappingNotifyMask;
extern Mask DeviceOwnerGrabButtonMask; extern Mask DeviceOwnerGrabButtonMask;
extern Mask DeviceButtonGrabMask; extern Mask DeviceButtonGrabMask;
extern Mask DeviceButtonMotionMask; extern Mask DeviceButtonMotionMask;
extern Mask PropagateMask[]; extern Mask PropagateMask[];
extern int DeviceValuator; extern int DeviceValuator;
extern int DeviceKeyPress; extern int DeviceKeyPress;
extern int DeviceKeyRelease; extern int DeviceKeyRelease;
extern int DeviceButtonPress; extern int DeviceButtonPress;
extern int DeviceButtonRelease; extern int DeviceButtonRelease;
extern int DeviceMotionNotify; extern int DeviceMotionNotify;
extern int DeviceFocusIn; extern int DeviceFocusIn;
extern int DeviceFocusOut; extern int DeviceFocusOut;
extern int ProximityIn; extern int ProximityIn;
extern int ProximityOut; extern int ProximityOut;
extern int DeviceStateNotify; extern int DeviceStateNotify;
extern int DeviceKeyStateNotify; extern int DeviceKeyStateNotify;
extern int DeviceButtonStateNotify; extern int DeviceButtonStateNotify;
extern int DeviceMappingNotify; extern int DeviceMappingNotify;
extern int ChangeDeviceNotify; extern int ChangeDeviceNotify;
extern int RT_INPUTCLIENT; extern int RT_INPUTCLIENT;
#if 0 #if 0
/* FIXME: in dix */ /* FIXME: in dix */
extern InputInfo inputInfo; extern InputInfo inputInfo;
#endif #endif
#endif /* EXGLOBALS_H */ #endif /* EXGLOBALS_H */
...@@ -55,13 +55,13 @@ SOFTWARE. ...@@ -55,13 +55,13 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "getbmap.h" #include "getbmap.h"
...@@ -73,13 +73,12 @@ SOFTWARE. ...@@ -73,13 +73,12 @@ SOFTWARE.
*/ */
int int
SProcXGetDeviceButtonMapping(client) SProcXGetDeviceButtonMapping(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xGetDeviceButtonMappingReq); REQUEST(xGetDeviceButtonMappingReq);
swaps(&stuff->length); swaps(&stuff->length);
return(ProcXGetDeviceButtonMapping(client)); return (ProcXGetDeviceButtonMapping(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -88,12 +87,11 @@ SProcXGetDeviceButtonMapping(client) ...@@ -88,12 +87,11 @@ SProcXGetDeviceButtonMapping(client)
*/ */
int int
ProcXGetDeviceButtonMapping (client) ProcXGetDeviceButtonMapping(register ClientPtr client)
register ClientPtr client; {
{ DeviceIntPtr dev;
DeviceIntPtr dev; xGetDeviceButtonMappingReply rep;
xGetDeviceButtonMappingReply rep; ButtonClassPtr b;
ButtonClassPtr b;
REQUEST(xGetDeviceButtonMappingReq); REQUEST(xGetDeviceButtonMappingReq);
REQUEST_SIZE_MATCH(xGetDeviceButtonMappingReq); REQUEST_SIZE_MATCH(xGetDeviceButtonMappingReq);
...@@ -104,28 +102,25 @@ ProcXGetDeviceButtonMapping (client) ...@@ -104,28 +102,25 @@ ProcXGetDeviceButtonMapping (client)
rep.length = 0; rep.length = 0;
rep.sequenceNumber = client->sequence; rep.sequenceNumber = client->sequence;
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL) if (dev == NULL) {
{ SendErrorToClient(client, IReqCode, X_GetDeviceButtonMapping, 0,
SendErrorToClient(client, IReqCode, X_GetDeviceButtonMapping, 0, BadDevice);
BadDevice);
return Success; return Success;
} }
b = dev->button; b = dev->button;
if (b == NULL) if (b == NULL) {
{ SendErrorToClient(client, IReqCode, X_GetDeviceButtonMapping, 0,
SendErrorToClient(client, IReqCode, X_GetDeviceButtonMapping, 0, BadMatch);
BadMatch);
return Success; return Success;
} }
rep.nElts = b->numButtons; rep.nElts = b->numButtons;
rep.length = (rep.nElts + (4-1))/4; rep.length = (rep.nElts + (4 - 1)) / 4;
WriteReplyToClient (client, sizeof (xGetDeviceButtonMappingReply), &rep); WriteReplyToClient(client, sizeof(xGetDeviceButtonMappingReply), &rep);
WriteToClient(client, rep.nElts, WriteToClient(client, rep.nElts, &b->map[1]);
(char *)&b->map[1]);
return Success; return Success;
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -135,12 +130,10 @@ ProcXGetDeviceButtonMapping (client) ...@@ -135,12 +130,10 @@ ProcXGetDeviceButtonMapping (client)
*/ */
void void
SRepXGetDeviceButtonMapping (client, size, rep) SRepXGetDeviceButtonMapping(ClientPtr client, int size,
ClientPtr client; xGetDeviceButtonMappingReply * rep)
int size; {
xGetDeviceButtonMappingReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GETBMAP_H #ifndef GETBMAP_H
#define GETBMAP_H 1 #define GETBMAP_H 1
int int SProcXGetDeviceButtonMapping(ClientPtr /* client */
SProcXGetDeviceButtonMapping( );
ClientPtr /* client */
); int ProcXGetDeviceButtonMapping(ClientPtr /* client */
);
int
ProcXGetDeviceButtonMapping ( void SRepXGetDeviceButtonMapping(ClientPtr /* client */ ,
ClientPtr /* client */ int /* size */ ,
); xGetDeviceButtonMappingReply * /* rep */
);
void
SRepXGetDeviceButtonMapping (
ClientPtr /* client */,
int /* size */,
xGetDeviceButtonMappingReply * /* rep */
);
#endif /* GETBMAP_H */ #endif /* GETBMAP_H */
...@@ -55,13 +55,13 @@ SOFTWARE. ...@@ -55,13 +55,13 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "getdctl.h" #include "getdctl.h"
...@@ -74,15 +74,14 @@ SOFTWARE. ...@@ -74,15 +74,14 @@ SOFTWARE.
*/ */
int int
SProcXGetDeviceControl(client) SProcXGetDeviceControl(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xGetDeviceControlReq); REQUEST(xGetDeviceControlReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_SIZE_MATCH(xGetDeviceControlReq); REQUEST_SIZE_MATCH(xGetDeviceControlReq);
swaps(&stuff->control); swaps(&stuff->control);
return(ProcXGetDeviceControl(client)); return (ProcXGetDeviceControl(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -91,10 +90,9 @@ SProcXGetDeviceControl(client) ...@@ -91,10 +90,9 @@ SProcXGetDeviceControl(client)
*/ */
int int
ProcXGetDeviceControl(client) ProcXGetDeviceControl(ClientPtr client)
ClientPtr client; {
{ int total_length = 0;
int total_length = 0;
char *buf, *savbuf; char *buf, *savbuf;
register DeviceIntPtr dev; register DeviceIntPtr dev;
xGetDeviceControlReply rep; xGetDeviceControlReply rep;
...@@ -102,62 +100,53 @@ ProcXGetDeviceControl(client) ...@@ -102,62 +100,53 @@ ProcXGetDeviceControl(client)
REQUEST(xGetDeviceControlReq); REQUEST(xGetDeviceControlReq);
REQUEST_SIZE_MATCH(xGetDeviceControlReq); REQUEST_SIZE_MATCH(xGetDeviceControlReq);
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL) if (dev == NULL) {
{ SendErrorToClient(client, IReqCode, X_GetDeviceControl, 0, BadDevice);
SendErrorToClient (client, IReqCode, X_GetDeviceControl, 0,
BadDevice);
return Success; return Success;
} }
rep.repType = X_Reply; rep.repType = X_Reply;
rep.RepType = X_GetDeviceControl; rep.RepType = X_GetDeviceControl;
rep.length = 0; rep.length = 0;
rep.sequenceNumber = client->sequence; rep.sequenceNumber = client->sequence;
switch (stuff->control) switch (stuff->control) {
{ case DEVICE_RESOLUTION:
case DEVICE_RESOLUTION: if (!dev->valuator) {
if (!dev->valuator) SendErrorToClient(client, IReqCode, X_GetDeviceControl, 0,
{ BadMatch);
SendErrorToClient (client, IReqCode, X_GetDeviceControl, 0,
BadMatch);
return Success;
}
total_length = sizeof (xDeviceResolutionState) +
(3 * sizeof(int) * dev->valuator->numAxes);
break;
default:
SendErrorToClient (client, IReqCode, X_GetDeviceControl, 0,
BadValue);
return Success; return Success;
} }
total_length = sizeof(xDeviceResolutionState) +
(3 * sizeof(int) * dev->valuator->numAxes);
break;
default:
SendErrorToClient(client, IReqCode, X_GetDeviceControl, 0, BadValue);
return Success;
}
buf = (char *) malloc (total_length); buf = (char *)malloc(total_length);
if (!buf) if (!buf) {
{ SendErrorToClient(client, IReqCode, X_GetDeviceControl, 0, BadAlloc);
SendErrorToClient(client, IReqCode, X_GetDeviceControl, 0,
BadAlloc);
return Success; return Success;
} }
savbuf=buf; savbuf = buf;
switch (stuff->control) switch (stuff->control) {
{ case DEVICE_RESOLUTION:
case DEVICE_RESOLUTION: CopySwapDeviceResolution(client, dev->valuator, buf, total_length);
CopySwapDeviceResolution(client, dev->valuator, buf, break;
total_length); default:
break; break;
default: }
break;
}
rep.length = (total_length+3) >> 2; rep.length = (total_length + 3) >> 2;
WriteReplyToClient(client, sizeof(xGetDeviceControlReply), &rep); WriteReplyToClient(client, sizeof(xGetDeviceControlReply), &rep);
WriteToClient(client, total_length, savbuf); WriteToClient(client, total_length, savbuf);
free (savbuf); free(savbuf);
return Success; return Success;
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -166,40 +155,35 @@ ProcXGetDeviceControl(client) ...@@ -166,40 +155,35 @@ ProcXGetDeviceControl(client)
*/ */
void void
CopySwapDeviceResolution (client, v, buf, length) CopySwapDeviceResolution(ClientPtr client, ValuatorClassPtr v, char *buf,
ClientPtr client; int length)
ValuatorClassPtr v; {
char *buf; AxisInfoPtr a;
int length;
{
AxisInfoPtr a;
xDeviceResolutionState *r; xDeviceResolutionState *r;
int i, *iptr; int i, *iptr;
r = (xDeviceResolutionState *) buf; r = (xDeviceResolutionState *) buf;
r->control = DEVICE_RESOLUTION; r->control = DEVICE_RESOLUTION;
r->length = length; r->length = length;
r->num_valuators = v->numAxes; r->num_valuators = v->numAxes;
buf += sizeof (xDeviceResolutionState); buf += sizeof(xDeviceResolutionState);
iptr = (int *) buf; iptr = (int *)buf;
for (i=0,a=v->axes; i<v->numAxes; i++,a++) for (i = 0, a = v->axes; i < v->numAxes; i++, a++)
*iptr++ = a->resolution; *iptr++ = a->resolution;
for (i=0,a=v->axes; i<v->numAxes; i++,a++) for (i = 0, a = v->axes; i < v->numAxes; i++, a++)
*iptr++ = a->min_resolution; *iptr++ = a->min_resolution;
for (i=0,a=v->axes; i<v->numAxes; i++,a++) for (i = 0, a = v->axes; i < v->numAxes; i++, a++)
*iptr++ = a->max_resolution; *iptr++ = a->max_resolution;
if (client->swapped) if (client->swapped) {
{ swaps(&r->control);
swaps (&r->control); swaps(&r->length);
swaps (&r->length); swapl(&r->num_valuators);
swapl (&r->num_valuators); iptr = (int *)buf;
iptr = (int *) buf; for (i = 0; i < (3 * v->numAxes); i++, iptr++) {
for (i=0; i < (3 * v->numAxes); i++,iptr++) swapl(iptr);
{
swapl (iptr);
}
} }
} }
}
/*********************************************************************** /***********************************************************************
* *
...@@ -209,13 +193,9 @@ CopySwapDeviceResolution (client, v, buf, length) ...@@ -209,13 +193,9 @@ CopySwapDeviceResolution (client, v, buf, length)
*/ */
void void
SRepXGetDeviceControl (client, size, rep) SRepXGetDeviceControl(ClientPtr client, int size, xGetDeviceControlReply * rep)
ClientPtr client; {
int size;
xGetDeviceControlReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,29 +30,21 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,29 +30,21 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GETDCTL_H #ifndef GETDCTL_H
#define GETDCTL_H 1 #define GETDCTL_H 1
int int SProcXGetDeviceControl(ClientPtr /* client */
SProcXGetDeviceControl ( );
ClientPtr /* client */
); int ProcXGetDeviceControl(ClientPtr /* client */
);
int
ProcXGetDeviceControl ( void CopySwapDeviceResolution(ClientPtr /* client */ ,
ClientPtr /* client */ ValuatorClassPtr /* v */ ,
); char * /* buf */ ,
int /* length */
void );
CopySwapDeviceResolution (
ClientPtr /* client */, void SRepXGetDeviceControl(ClientPtr /* client */ ,
ValuatorClassPtr /* v */, int /* size */ ,
char * /* buf */, xGetDeviceControlReply * /* rep */
int /* length */ );
);
void
SRepXGetDeviceControl (
ClientPtr /* client */,
int /* size */,
xGetDeviceControlReply * /* rep */
);
#endif /* GETDCTL_H */ #endif /* GETDCTL_H */
...@@ -30,63 +30,45 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,63 +30,45 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GETFCTL_H #ifndef GETFCTL_H
#define GETFCTL_H 1 #define GETFCTL_H 1
int int SProcXGetFeedbackControl(ClientPtr /* client */
SProcXGetFeedbackControl( );
ClientPtr /* client */
); int ProcXGetFeedbackControl(ClientPtr /* client */
);
int
ProcXGetFeedbackControl( void CopySwapKbdFeedback(ClientPtr /* client */ ,
ClientPtr /* client */ KbdFeedbackPtr /* k */ ,
); char ** /* buf */
);
void
CopySwapKbdFeedback ( void CopySwapPtrFeedback(ClientPtr /* client */ ,
ClientPtr /* client */, PtrFeedbackPtr /* p */ ,
KbdFeedbackPtr /* k */, char ** /* buf */
char ** /* buf */ );
);
void CopySwapIntegerFeedback(ClientPtr /* client */ ,
void IntegerFeedbackPtr /* i */ ,
CopySwapPtrFeedback ( char ** /* buf */
ClientPtr /* client */, );
PtrFeedbackPtr /* p */,
char ** /* buf */ void CopySwapStringFeedback(ClientPtr /* client */ ,
); StringFeedbackPtr /* s */ ,
char ** /* buf */
void );
CopySwapIntegerFeedback (
ClientPtr /* client */, void CopySwapLedFeedback(ClientPtr /* client */ ,
IntegerFeedbackPtr /* i */, LedFeedbackPtr /* l */ ,
char ** /* buf */ char ** /* buf */
); );
void void CopySwapBellFeedback(ClientPtr /* client */ ,
CopySwapStringFeedback ( BellFeedbackPtr /* b */ ,
ClientPtr /* client */, char ** /* buf */
StringFeedbackPtr /* s */, );
char ** /* buf */
); void SRepXGetFeedbackControl(ClientPtr /* client */ ,
int /* size */ ,
void xGetFeedbackControlReply * /* rep */
CopySwapLedFeedback ( );
ClientPtr /* client */,
LedFeedbackPtr /* l */,
char ** /* buf */
);
void
CopySwapBellFeedback (
ClientPtr /* client */,
BellFeedbackPtr /* b */,
char ** /* buf */
);
void
SRepXGetFeedbackControl (
ClientPtr /* client */,
int /* size */,
xGetFeedbackControlReply * /* rep */
);
#endif /* GETFCTL_H */ #endif /* GETFCTL_H */
...@@ -55,14 +55,14 @@ SOFTWARE. ...@@ -55,14 +55,14 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "windowstr.h" /* focus struct */ #include "windowstr.h" /* focus struct */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "getfocus.h" #include "getfocus.h"
...@@ -74,13 +74,12 @@ SOFTWARE. ...@@ -74,13 +74,12 @@ SOFTWARE.
*/ */
int int
SProcXGetDeviceFocus(client) SProcXGetDeviceFocus(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xGetDeviceFocusReq); REQUEST(xGetDeviceFocusReq);
swaps(&stuff->length); swaps(&stuff->length);
return(ProcXGetDeviceFocus(client)); return (ProcXGetDeviceFocus(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -89,22 +88,20 @@ SProcXGetDeviceFocus(client) ...@@ -89,22 +88,20 @@ SProcXGetDeviceFocus(client)
*/ */
int int
ProcXGetDeviceFocus(client) ProcXGetDeviceFocus(ClientPtr client)
ClientPtr client; {
{ DeviceIntPtr dev;
DeviceIntPtr dev; FocusClassPtr focus;
FocusClassPtr focus;
xGetDeviceFocusReply rep; xGetDeviceFocusReply rep;
REQUEST(xGetDeviceFocusReq); REQUEST(xGetDeviceFocusReq);
REQUEST_SIZE_MATCH(xGetDeviceFocusReq); REQUEST_SIZE_MATCH(xGetDeviceFocusReq);
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL || !dev->focus) if (dev == NULL || !dev->focus) {
{
SendErrorToClient(client, IReqCode, X_GetDeviceFocus, 0, BadDevice); SendErrorToClient(client, IReqCode, X_GetDeviceFocus, 0, BadDevice);
return Success; return Success;
} }
rep.repType = X_Reply; rep.repType = X_Reply;
rep.RepType = X_GetDeviceFocus; rep.RepType = X_GetDeviceFocus;
...@@ -119,14 +116,14 @@ ProcXGetDeviceFocus(client) ...@@ -119,14 +116,14 @@ ProcXGetDeviceFocus(client)
rep.focus = PointerRoot; rep.focus = PointerRoot;
else if (focus->win == FollowKeyboardWin) else if (focus->win == FollowKeyboardWin)
rep.focus = FollowKeyboard; rep.focus = FollowKeyboard;
else else
rep.focus = focus->win->drawable.id; rep.focus = focus->win->drawable.id;
rep.time = focus->time.milliseconds; rep.time = focus->time.milliseconds;
rep.revertTo = focus->revert; rep.revertTo = focus->revert;
WriteReplyToClient (client, sizeof(xGetDeviceFocusReply), &rep); WriteReplyToClient(client, sizeof(xGetDeviceFocusReply), &rep);
return Success; return Success;
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -136,14 +133,11 @@ ProcXGetDeviceFocus(client) ...@@ -136,14 +133,11 @@ ProcXGetDeviceFocus(client)
*/ */
void void
SRepXGetDeviceFocus (client, size, rep) SRepXGetDeviceFocus(ClientPtr client, int size, xGetDeviceFocusReply * rep)
ClientPtr client; {
int size;
xGetDeviceFocusReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
swapl(&rep->focus); swapl(&rep->focus);
swapl(&rep->time); swapl(&rep->time);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GETFOCUS_H #ifndef GETFOCUS_H
#define GETFOCUS_H 1 #define GETFOCUS_H 1
int int SProcXGetDeviceFocus(ClientPtr /* client */
SProcXGetDeviceFocus( );
ClientPtr /* client */
); int ProcXGetDeviceFocus(ClientPtr /* client */
);
int
ProcXGetDeviceFocus( void SRepXGetDeviceFocus(ClientPtr /* client */ ,
ClientPtr /* client */ int /* size */ ,
); xGetDeviceFocusReply * /* rep */
);
void
SRepXGetDeviceFocus (
ClientPtr /* client */,
int /* size */,
xGetDeviceFocusReply * /* rep */
);
#endif /* GETFOCUS_H */ #endif /* GETFOCUS_H */
...@@ -55,13 +55,13 @@ SOFTWARE. ...@@ -55,13 +55,13 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "swaprep.h" #include "swaprep.h"
...@@ -75,13 +75,12 @@ SOFTWARE. ...@@ -75,13 +75,12 @@ SOFTWARE.
*/ */
int int
SProcXGetDeviceKeyMapping(client) SProcXGetDeviceKeyMapping(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xGetDeviceKeyMappingReq); REQUEST(xGetDeviceKeyMappingReq);
swaps(&stuff->length); swaps(&stuff->length);
return(ProcXGetDeviceKeyMapping(client)); return (ProcXGetDeviceKeyMapping(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -90,65 +89,56 @@ SProcXGetDeviceKeyMapping(client) ...@@ -90,65 +89,56 @@ SProcXGetDeviceKeyMapping(client)
*/ */
int int
ProcXGetDeviceKeyMapping(client) ProcXGetDeviceKeyMapping(register ClientPtr client)
register ClientPtr client; {
{
xGetDeviceKeyMappingReply rep; xGetDeviceKeyMappingReply rep;
DeviceIntPtr dev; DeviceIntPtr dev;
KeySymsPtr k; KeySymsPtr k;
REQUEST(xGetDeviceKeyMappingReq); REQUEST(xGetDeviceKeyMappingReq);
REQUEST_SIZE_MATCH(xGetDeviceKeyMappingReq); REQUEST_SIZE_MATCH(xGetDeviceKeyMappingReq);
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL) if (dev == NULL) {
{ SendErrorToClient(client, IReqCode, X_GetDeviceKeyMapping, 0,
SendErrorToClient (client, IReqCode, X_GetDeviceKeyMapping, 0, BadDevice);
BadDevice);
return Success; return Success;
} }
if (dev->key == NULL) if (dev->key == NULL) {
{ SendErrorToClient(client, IReqCode, X_GetDeviceKeyMapping, 0, BadMatch);
SendErrorToClient (client, IReqCode, X_GetDeviceKeyMapping, 0,
BadMatch);
return Success; return Success;
} }
k = &dev->key->curKeySyms; k = &dev->key->curKeySyms;
if ((stuff->firstKeyCode < k->minKeyCode) || if ((stuff->firstKeyCode < k->minKeyCode) ||
(stuff->firstKeyCode > k->maxKeyCode)) (stuff->firstKeyCode > k->maxKeyCode)) {
{
client->errorValue = stuff->firstKeyCode; client->errorValue = stuff->firstKeyCode;
SendErrorToClient (client, IReqCode, X_GetDeviceKeyMapping, 0, SendErrorToClient(client, IReqCode, X_GetDeviceKeyMapping, 0, BadValue);
BadValue);
return Success; return Success;
} }
if (stuff->firstKeyCode + stuff->count > k->maxKeyCode + 1) if (stuff->firstKeyCode + stuff->count > k->maxKeyCode + 1) {
{
client->errorValue = stuff->count; client->errorValue = stuff->count;
SendErrorToClient (client, IReqCode, X_GetDeviceKeyMapping, 0, SendErrorToClient(client, IReqCode, X_GetDeviceKeyMapping, 0, BadValue);
BadValue);
return Success; return Success;
} }
rep.repType = X_Reply; rep.repType = X_Reply;
rep.RepType = X_GetDeviceKeyMapping; rep.RepType = X_GetDeviceKeyMapping;
rep.sequenceNumber = client->sequence; rep.sequenceNumber = client->sequence;
rep.keySymsPerKeyCode = k->mapWidth; rep.keySymsPerKeyCode = k->mapWidth;
rep.length = (k->mapWidth * stuff->count); /* KeySyms are 4 bytes */ rep.length = (k->mapWidth * stuff->count); /* KeySyms are 4 bytes */
WriteReplyToClient(client, sizeof(xGetDeviceKeyMappingReply), &rep); WriteReplyToClient(client, sizeof(xGetDeviceKeyMappingReply), &rep);
client->pSwapReplyFunc = (ReplySwapPtr)CopySwap32Write; client->pSwapReplyFunc = (ReplySwapPtr) CopySwap32Write;
WriteSwappedDataToClient( WriteSwappedDataToClient(client,
client, k->mapWidth * stuff->count * sizeof(KeySym),
k->mapWidth * stuff->count * sizeof(KeySym), &k->map[(stuff->firstKeyCode - k->minKeyCode) *
&k->map[(stuff->firstKeyCode - k->minKeyCode) * k->mapWidth]);
k->mapWidth]);
return Success; return Success;
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -158,13 +148,10 @@ ProcXGetDeviceKeyMapping(client) ...@@ -158,13 +148,10 @@ ProcXGetDeviceKeyMapping(client)
*/ */
void void
SRepXGetDeviceKeyMapping (client, size, rep) SRepXGetDeviceKeyMapping(ClientPtr client, int size,
ClientPtr client; xGetDeviceKeyMappingReply * rep)
int size; {
xGetDeviceKeyMappingReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GETKMAP_H #ifndef GETKMAP_H
#define GETKMAP_H 1 #define GETKMAP_H 1
int int SProcXGetDeviceKeyMapping(ClientPtr /* client */
SProcXGetDeviceKeyMapping( );
ClientPtr /* client */
); int ProcXGetDeviceKeyMapping(ClientPtr /* client */
);
int
ProcXGetDeviceKeyMapping( void SRepXGetDeviceKeyMapping(ClientPtr /* client */ ,
ClientPtr /* client */ int /* size */ ,
); xGetDeviceKeyMappingReply * /* rep */
);
void
SRepXGetDeviceKeyMapping (
ClientPtr /* client */,
int /* size */,
xGetDeviceKeyMappingReply * /* rep */
);
#endif /* GETKMAP_H */ #endif /* GETKMAP_H */
...@@ -55,13 +55,13 @@ SOFTWARE. ...@@ -55,13 +55,13 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> /* Request macro */ #include <nx-X11/extensions/XIproto.h> /* Request macro */
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "getmmap.h" #include "getmmap.h"
...@@ -74,13 +74,12 @@ SOFTWARE. ...@@ -74,13 +74,12 @@ SOFTWARE.
*/ */
int int
SProcXGetDeviceModifierMapping(client) SProcXGetDeviceModifierMapping(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xGetDeviceModifierMappingReq); REQUEST(xGetDeviceModifierMappingReq);
swaps(&stuff->length); swaps(&stuff->length);
return(ProcXGetDeviceModifierMapping(client)); return (ProcXGetDeviceModifierMapping(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -89,47 +88,44 @@ SProcXGetDeviceModifierMapping(client) ...@@ -89,47 +88,44 @@ SProcXGetDeviceModifierMapping(client)
*/ */
int int
ProcXGetDeviceModifierMapping(client) ProcXGetDeviceModifierMapping(ClientPtr client)
ClientPtr client; {
{ CARD8 maxkeys;
CARD8 maxkeys; DeviceIntPtr dev;
DeviceIntPtr dev; xGetDeviceModifierMappingReply rep;
xGetDeviceModifierMappingReply rep; KeyClassPtr kp;
KeyClassPtr kp;
REQUEST(xGetDeviceModifierMappingReq); REQUEST(xGetDeviceModifierMappingReq);
REQUEST_SIZE_MATCH(xGetDeviceModifierMappingReq); REQUEST_SIZE_MATCH(xGetDeviceModifierMappingReq);
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL) if (dev == NULL) {
{ SendErrorToClient(client, IReqCode, X_GetDeviceModifierMapping, 0,
SendErrorToClient (client, IReqCode, X_GetDeviceModifierMapping, 0, BadDevice);
BadDevice);
return Success; return Success;
} }
kp = dev->key; kp = dev->key;
if (kp == NULL) if (kp == NULL) {
{ SendErrorToClient(client, IReqCode, X_GetDeviceModifierMapping, 0,
SendErrorToClient (client, IReqCode, X_GetDeviceModifierMapping, 0, BadMatch);
BadMatch);
return Success; return Success;
} }
maxkeys = kp->maxKeysPerModifier; maxkeys = kp->maxKeysPerModifier;
rep.repType = X_Reply; rep.repType = X_Reply;
rep.RepType = X_GetDeviceModifierMapping; rep.RepType = X_GetDeviceModifierMapping;
rep.numKeyPerModifier = maxkeys; rep.numKeyPerModifier = maxkeys;
rep.sequenceNumber = client->sequence; rep.sequenceNumber = client->sequence;
/* length counts 4 byte quantities - there are 8 modifiers 1 byte big */ /* length counts 4 byte quantities - there are 8 modifiers 1 byte big */
rep.length = 2*maxkeys; rep.length = 2 * maxkeys;
WriteReplyToClient(client, sizeof(xGetDeviceModifierMappingReply), &rep); WriteReplyToClient(client, sizeof(xGetDeviceModifierMappingReply), &rep);
/* Reply with the (modified by DDX) map that SetModifierMapping passed in */ /* Reply with the (modified by DDX) map that SetModifierMapping passed in */
WriteToClient(client, 8*maxkeys, kp->modifierKeyMap); WriteToClient(client, 8 * maxkeys, kp->modifierKeyMap);
return Success; return Success;
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -139,12 +135,10 @@ ProcXGetDeviceModifierMapping(client) ...@@ -139,12 +135,10 @@ ProcXGetDeviceModifierMapping(client)
*/ */
void void
SRepXGetDeviceModifierMapping (client, size, rep) SRepXGetDeviceModifierMapping(ClientPtr client, int size,
ClientPtr client; xGetDeviceModifierMappingReply * rep)
int size; {
xGetDeviceModifierMappingReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GETMMAP_H #ifndef GETMMAP_H
#define GETMMAP_H 1 #define GETMMAP_H 1
int int SProcXGetDeviceModifierMapping(ClientPtr /* client */
SProcXGetDeviceModifierMapping( );
ClientPtr /* client */
); int ProcXGetDeviceModifierMapping(ClientPtr /* client */
);
int
ProcXGetDeviceModifierMapping( void SRepXGetDeviceModifierMapping(ClientPtr /* client */ ,
ClientPtr /* client */ int /* size */ ,
); xGetDeviceModifierMappingReply * /* rep */
);
void
SRepXGetDeviceModifierMapping (
ClientPtr /* client */,
int /* size */,
xGetDeviceModifierMappingReply * /* rep */
);
#endif /* GETMMAP_H */ #endif /* GETMMAP_H */
...@@ -55,21 +55,21 @@ SOFTWARE. ...@@ -55,21 +55,21 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include "windowstr.h" /* window structs */ #include "windowstr.h" /* window structs */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "swaprep.h" #include "swaprep.h"
#include "getprop.h" #include "getprop.h"
extern XExtEventInfo EventInfo[]; extern XExtEventInfo EventInfo[];
extern int ExtEventIndex; extern int ExtEventIndex;
/*********************************************************************** /***********************************************************************
* *
...@@ -78,15 +78,14 @@ extern int ExtEventIndex; ...@@ -78,15 +78,14 @@ extern int ExtEventIndex;
*/ */
int int
SProcXGetDeviceDontPropagateList(client) SProcXGetDeviceDontPropagateList(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xGetDeviceDontPropagateListReq); REQUEST(xGetDeviceDontPropagateListReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_SIZE_MATCH(xGetDeviceDontPropagateListReq); REQUEST_SIZE_MATCH(xGetDeviceDontPropagateListReq);
swapl(&stuff->window); swapl(&stuff->window);
return(ProcXGetDeviceDontPropagateList(client)); return (ProcXGetDeviceDontPropagateList(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -95,15 +94,14 @@ SProcXGetDeviceDontPropagateList(client) ...@@ -95,15 +94,14 @@ SProcXGetDeviceDontPropagateList(client)
*/ */
int int
ProcXGetDeviceDontPropagateList (client) ProcXGetDeviceDontPropagateList(register ClientPtr client)
register ClientPtr client; {
{ CARD16 count = 0;
CARD16 count = 0; int i;
int i; XEventClass *buf = NULL, *tbuf;
XEventClass *buf = NULL, *tbuf; WindowPtr pWin;
WindowPtr pWin; xGetDeviceDontPropagateListReply rep;
xGetDeviceDontPropagateListReply rep; OtherInputMasks *others;
OtherInputMasks *others;
REQUEST(xGetDeviceDontPropagateListReq); REQUEST(xGetDeviceDontPropagateListReq);
REQUEST_SIZE_MATCH(xGetDeviceDontPropagateListReq); REQUEST_SIZE_MATCH(xGetDeviceDontPropagateListReq);
...@@ -114,44 +112,39 @@ ProcXGetDeviceDontPropagateList (client) ...@@ -114,44 +112,39 @@ ProcXGetDeviceDontPropagateList (client)
rep.length = 0; rep.length = 0;
rep.count = 0; rep.count = 0;
pWin = (WindowPtr) LookupWindow (stuff->window, client); pWin = (WindowPtr) LookupWindow(stuff->window, client);
if (!pWin) if (!pWin) {
{
client->errorValue = stuff->window; client->errorValue = stuff->window;
SendErrorToClient(client, IReqCode, X_GetDeviceDontPropagateList, 0, SendErrorToClient(client, IReqCode, X_GetDeviceDontPropagateList, 0,
BadWindow); BadWindow);
return Success; return Success;
} }
if ((others = wOtherInputMasks(pWin)) != 0) if ((others = wOtherInputMasks(pWin)) != 0) {
{ for (i = 0; i < EMASKSIZE; i++)
for (i=0; i<EMASKSIZE; i++) tbuf = ClassFromMask(NULL, others->dontPropagateMask[i], i,
tbuf = ClassFromMask (NULL, others->dontPropagateMask[i], i, &count, COUNT);
&count, COUNT); if (count) {
if (count)
{
rep.count = count; rep.count = count;
buf = (XEventClass *) malloc (rep.count * sizeof(XEventClass)); buf = (XEventClass *) malloc(rep.count * sizeof(XEventClass));
rep.length = (rep.count * sizeof (XEventClass) + 3) >> 2; rep.length = (rep.count * sizeof(XEventClass) + 3) >> 2;
tbuf = buf; tbuf = buf;
for (i=0; i<EMASKSIZE; i++) for (i = 0; i < EMASKSIZE; i++)
tbuf = ClassFromMask (tbuf, others->dontPropagateMask[i], i, tbuf = ClassFromMask(tbuf, others->dontPropagateMask[i], i,
NULL, CREATE); NULL, CREATE);
}
} }
}
WriteReplyToClient (client, sizeof (xGetDeviceDontPropagateListReply), WriteReplyToClient(client, sizeof(xGetDeviceDontPropagateListReply), &rep);
&rep);
if (count) if (count) {
{ client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
client->pSwapReplyFunc = (ReplySwapPtr)Swap32Write; WriteSwappedDataToClient(client, count * sizeof(XEventClass), buf);
WriteSwappedDataToClient( client, count * sizeof(XEventClass), buf); free(buf);
free (buf);
}
return Success;
} }
return Success;
}
/*********************************************************************** /***********************************************************************
* *
...@@ -161,31 +154,25 @@ ProcXGetDeviceDontPropagateList (client) ...@@ -161,31 +154,25 @@ ProcXGetDeviceDontPropagateList (client)
*/ */
XEventClass XEventClass
*ClassFromMask (buf, mask, maskndx, count, mode) * ClassFromMask(XEventClass * buf, Mask mask, int maskndx, CARD16 * count,
XEventClass *buf; int mode)
Mask mask; {
int maskndx; int i, j;
CARD16 *count; int id = maskndx;
int mode; Mask tmask = 0x80000000;
{
int i,j; for (i = 0; i < 32; i++, tmask >>= 1)
int id = maskndx; if (tmask & mask) {
Mask tmask = 0x80000000; for (j = 0; j < ExtEventIndex; j++)
if (EventInfo[j].mask == tmask) {
for (i=0; i<32; i++,tmask>>=1)
if (tmask & mask)
{
for (j=0; j<ExtEventIndex; j++)
if (EventInfo[j].mask == tmask)
{
if (mode == COUNT) if (mode == COUNT)
(*count)++; (*count)++;
else else
*buf++ = (id << 8) | EventInfo[j].type; *buf++ = (id << 8) | EventInfo[j].type;
} }
} }
return (buf); return (buf);
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -195,13 +182,11 @@ XEventClass ...@@ -195,13 +182,11 @@ XEventClass
*/ */
void void
SRepXGetDeviceDontPropagateList (client, size, rep) SRepXGetDeviceDontPropagateList(ClientPtr client, int size,
ClientPtr client; xGetDeviceDontPropagateListReply * rep)
int size; {
xGetDeviceDontPropagateListReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
swaps(&rep->count); swaps(&rep->count);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,30 +30,22 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,30 +30,22 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GETPROP_H #ifndef GETPROP_H
#define GETPROP_H 1 #define GETPROP_H 1
int int SProcXGetDeviceDontPropagateList(ClientPtr /* client */
SProcXGetDeviceDontPropagateList( );
ClientPtr /* client */
); int ProcXGetDeviceDontPropagateList(ClientPtr /* client */
);
int
ProcXGetDeviceDontPropagateList ( XEventClass *ClassFromMask(XEventClass * /* buf */ ,
ClientPtr /* client */ Mask /* mask */ ,
); int /* maskndx */ ,
CARD16 * /* count */ ,
XEventClass * int /* mode */
ClassFromMask ( );
XEventClass * /* buf */,
Mask /* mask */, void SRepXGetDeviceDontPropagateList(ClientPtr /* client */ ,
int /* maskndx */, int /* size */ ,
CARD16 * /* count */, xGetDeviceDontPropagateListReply * /* rep */
int /* mode */ );
);
void
SRepXGetDeviceDontPropagateList (
ClientPtr /* client */,
int /* size */,
xGetDeviceDontPropagateListReply * /* rep */
);
#endif /* GETPROP_H */ #endif /* GETPROP_H */
...@@ -55,14 +55,14 @@ SOFTWARE. ...@@ -55,14 +55,14 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include "windowstr.h" /* window struct */ #include "windowstr.h" /* window struct */
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "swaprep.h" #include "swaprep.h"
...@@ -76,15 +76,14 @@ SOFTWARE. ...@@ -76,15 +76,14 @@ SOFTWARE.
*/ */
int int
SProcXGetSelectedExtensionEvents(client) SProcXGetSelectedExtensionEvents(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xGetSelectedExtensionEventsReq); REQUEST(xGetSelectedExtensionEventsReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_SIZE_MATCH(xGetSelectedExtensionEventsReq); REQUEST_SIZE_MATCH(xGetSelectedExtensionEventsReq);
swapl(&stuff->window); swapl(&stuff->window);
return(ProcXGetSelectedExtensionEvents(client)); return (ProcXGetSelectedExtensionEvents(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -94,18 +93,17 @@ SProcXGetSelectedExtensionEvents(client) ...@@ -94,18 +93,17 @@ SProcXGetSelectedExtensionEvents(client)
*/ */
int int
ProcXGetSelectedExtensionEvents(client) ProcXGetSelectedExtensionEvents(register ClientPtr client)
register ClientPtr client; {
{ int i;
int i; int total_length = 0;
int total_length = 0; xGetSelectedExtensionEventsReply rep;
xGetSelectedExtensionEventsReply rep; WindowPtr pWin;
WindowPtr pWin; XEventClass *buf = NULL;
XEventClass *buf = NULL; XEventClass *tclient;
XEventClass *tclient; XEventClass *aclient;
XEventClass *aclient; OtherInputMasks *pOthers;
OtherInputMasks *pOthers; InputClientsPtr others;
InputClientsPtr others;
REQUEST(xGetSelectedExtensionEventsReq); REQUEST(xGetSelectedExtensionEventsReq);
REQUEST_SIZE_MATCH(xGetSelectedExtensionEventsReq); REQUEST_SIZE_MATCH(xGetSelectedExtensionEventsReq);
...@@ -117,55 +115,53 @@ ProcXGetSelectedExtensionEvents(client) ...@@ -117,55 +115,53 @@ ProcXGetSelectedExtensionEvents(client)
rep.this_client_count = 0; rep.this_client_count = 0;
rep.all_clients_count = 0; rep.all_clients_count = 0;
if (!(pWin = LookupWindow(stuff->window, client))) if (!(pWin = LookupWindow(stuff->window, client))) {
{ SendErrorToClient(client, IReqCode, X_GetSelectedExtensionEvents, 0,
SendErrorToClient(client, IReqCode, X_GetSelectedExtensionEvents, 0, BadWindow);
BadWindow);
return Success; return Success;
} }
if ((pOthers = wOtherInputMasks(pWin)) != 0) if ((pOthers = wOtherInputMasks(pWin)) != 0) {
{ for (others = pOthers->inputClients; others; others = others->next)
for (others = pOthers->inputClients; others; others=others->next) for (i = 0; i < EMASKSIZE; i++)
for (i=0; i<EMASKSIZE; i++) tclient = ClassFromMask(NULL, others->mask[i], i,
tclient = ClassFromMask (NULL, others->mask[i], i, &rep.all_clients_count, COUNT);
&rep.all_clients_count, COUNT);
for (others = pOthers->inputClients; others; others = others->next)
for (others = pOthers->inputClients; others; others=others->next) if (SameClient(others, client)) {
if (SameClient(others, client)) for (i = 0; i < EMASKSIZE; i++)
{ tclient = ClassFromMask(NULL, others->mask[i], i,
for (i=0; i<EMASKSIZE; i++) &rep.this_client_count, COUNT);
tclient = ClassFromMask (NULL, others->mask[i], i,
&rep.this_client_count, COUNT);
break; break;
} }
total_length = (rep.all_clients_count + rep.this_client_count) * total_length = (rep.all_clients_count + rep.this_client_count) *
sizeof (XEventClass); sizeof(XEventClass);
rep.length = (total_length + 3) >> 2; rep.length = (total_length + 3) >> 2;
buf = (XEventClass *) malloc (total_length); buf = (XEventClass *) malloc(total_length);
tclient = buf; tclient = buf;
aclient = buf + rep.this_client_count; aclient = buf + rep.this_client_count;
if (others) if (others)
for (i=0; i<EMASKSIZE; i++) for (i = 0; i < EMASKSIZE; i++)
tclient = ClassFromMask (tclient, others->mask[i], i, NULL, CREATE); tclient =
ClassFromMask(tclient, others->mask[i], i, NULL, CREATE);
for (others = pOthers->inputClients; others; others=others->next)
for (i=0; i<EMASKSIZE; i++) for (others = pOthers->inputClients; others; others = others->next)
aclient = ClassFromMask (aclient, others->mask[i], i, NULL, CREATE); for (i = 0; i < EMASKSIZE; i++)
} aclient =
ClassFromMask(aclient, others->mask[i], i, NULL, CREATE);
}
WriteReplyToClient (client, sizeof(xGetSelectedExtensionEventsReply), &rep); WriteReplyToClient(client, sizeof(xGetSelectedExtensionEventsReply), &rep);
if (total_length) if (total_length) {
{
client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write; client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
WriteSwappedDataToClient( client, total_length, buf); WriteSwappedDataToClient(client, total_length, buf);
free (buf); free(buf);
}
return Success;
} }
return Success;
}
/*********************************************************************** /***********************************************************************
* *
...@@ -175,14 +171,12 @@ ProcXGetSelectedExtensionEvents(client) ...@@ -175,14 +171,12 @@ ProcXGetSelectedExtensionEvents(client)
*/ */
void void
SRepXGetSelectedExtensionEvents (client, size, rep) SRepXGetSelectedExtensionEvents(ClientPtr client, int size,
ClientPtr client; xGetSelectedExtensionEventsReply * rep)
int size; {
xGetSelectedExtensionEventsReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
swaps(&rep->this_client_count); swaps(&rep->this_client_count);
swaps(&rep->all_clients_count); swaps(&rep->all_clients_count);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GETSELEV_H #ifndef GETSELEV_H
#define GETSELEV_H 1 #define GETSELEV_H 1
int int SProcXGetSelectedExtensionEvents(ClientPtr /* client */
SProcXGetSelectedExtensionEvents( );
ClientPtr /* client */
); int ProcXGetSelectedExtensionEvents(ClientPtr /* client */
);
int
ProcXGetSelectedExtensionEvents( void SRepXGetSelectedExtensionEvents(ClientPtr /* client */ ,
ClientPtr /* client */ int /* size */ ,
); xGetSelectedExtensionEventsReply * /* rep */
);
void
SRepXGetSelectedExtensionEvents (
ClientPtr /* client */,
int /* size */,
xGetSelectedExtensionEventsReply * /* rep */
);
#endif /* GETSELEV_H */ #endif /* GETSELEV_H */
...@@ -55,18 +55,18 @@ SOFTWARE. ...@@ -55,18 +55,18 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "getvers.h" #include "getvers.h"
XExtensionVersion AllExtensionVersions[128]; XExtensionVersion AllExtensionVersions[128];
/*********************************************************************** /***********************************************************************
* *
...@@ -75,15 +75,14 @@ XExtensionVersion AllExtensionVersions[128]; ...@@ -75,15 +75,14 @@ XExtensionVersion AllExtensionVersions[128];
*/ */
int int
SProcXGetExtensionVersion(client) SProcXGetExtensionVersion(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xGetExtensionVersionReq); REQUEST(xGetExtensionVersionReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_AT_LEAST_SIZE(xGetExtensionVersionReq); REQUEST_AT_LEAST_SIZE(xGetExtensionVersionReq);
swaps(&stuff->nbytes); swaps(&stuff->nbytes);
return(ProcXGetExtensionVersion(client)); return (ProcXGetExtensionVersion(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -92,21 +91,19 @@ SProcXGetExtensionVersion(client) ...@@ -92,21 +91,19 @@ SProcXGetExtensionVersion(client)
*/ */
int int
ProcXGetExtensionVersion (client) ProcXGetExtensionVersion(register ClientPtr client)
register ClientPtr client; {
{ xGetExtensionVersionReply rep;
xGetExtensionVersionReply rep;
REQUEST(xGetExtensionVersionReq); REQUEST(xGetExtensionVersionReq);
REQUEST_AT_LEAST_SIZE(xGetExtensionVersionReq); REQUEST_AT_LEAST_SIZE(xGetExtensionVersionReq);
if (stuff->length != (sizeof(xGetExtensionVersionReq) + if (stuff->length != (sizeof(xGetExtensionVersionReq) +
stuff->nbytes + 3)>>2) stuff->nbytes + 3) >> 2) {
{ SendErrorToClient(client, IReqCode, X_GetExtensionVersion, 0,
SendErrorToClient(client, IReqCode, X_GetExtensionVersion, 0, BadLength);
BadLength);
return Success; return Success;
} }
memset(&rep, 0, sizeof(xGetExtensionVersionReply)); memset(&rep, 0, sizeof(xGetExtensionVersionReply));
rep.repType = X_Reply; rep.repType = X_Reply;
...@@ -117,17 +114,14 @@ ProcXGetExtensionVersion (client) ...@@ -117,17 +114,14 @@ ProcXGetExtensionVersion (client)
rep.minor_version = 0; rep.minor_version = 0;
rep.present = TRUE; rep.present = TRUE;
if (rep.present) if (rep.present) {
{ rep.major_version = AllExtensionVersions[IReqCode - 128].major_version;
rep.major_version = rep.minor_version = AllExtensionVersions[IReqCode - 128].minor_version;
AllExtensionVersions[IReqCode-128].major_version; }
rep.minor_version = WriteReplyToClient(client, sizeof(xGetExtensionVersionReply), &rep);
AllExtensionVersions[IReqCode-128].minor_version;
}
WriteReplyToClient (client, sizeof (xGetExtensionVersionReply), &rep);
return Success; return Success;
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -137,14 +131,12 @@ ProcXGetExtensionVersion (client) ...@@ -137,14 +131,12 @@ ProcXGetExtensionVersion (client)
*/ */
void void
SRepXGetExtensionVersion (client, size, rep) SRepXGetExtensionVersion(ClientPtr client, int size,
ClientPtr client; xGetExtensionVersionReply * rep)
int size; {
xGetExtensionVersionReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
swaps(&rep->major_version); swaps(&rep->major_version);
swaps(&rep->minor_version); swaps(&rep->minor_version);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GETVERS_H #ifndef GETVERS_H
#define GETVERS_H 1 #define GETVERS_H 1
int int SProcXGetExtensionVersion(ClientPtr /* client */
SProcXGetExtensionVersion( );
ClientPtr /* client */
); int ProcXGetExtensionVersion(ClientPtr /* client */
);
int
ProcXGetExtensionVersion ( void SRepXGetExtensionVersion(ClientPtr /* client */ ,
ClientPtr /* client */ int /* size */ ,
); xGetExtensionVersionReply * /* rep */
);
void
SRepXGetExtensionVersion (
ClientPtr /* client */,
int /* size */,
xGetExtensionVersionReply * /* rep */
);
#endif /* GETVERS_H */ #endif /* GETVERS_H */
...@@ -51,26 +51,25 @@ SOFTWARE. ...@@ -51,26 +51,25 @@ SOFTWARE.
* *
*/ */
#ifdef HAVE_DIX_CONFIG_H #ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include "windowstr.h" /* window structure */ #include "windowstr.h" /* window structure */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "dixevents.h" /* GrabDevice */ #include "dixevents.h" /* GrabDevice */
#include "grabdev.h" #include "grabdev.h"
extern XExtEventInfo EventInfo[]; extern XExtEventInfo EventInfo[];
extern int ExtEventIndex; extern int ExtEventIndex;
/*********************************************************************** /***********************************************************************
* *
...@@ -79,9 +78,8 @@ extern int ExtEventIndex; ...@@ -79,9 +78,8 @@ extern int ExtEventIndex;
*/ */
int int
SProcXGrabDevice(client) SProcXGrabDevice(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xGrabDeviceReq); REQUEST(xGrabDeviceReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_AT_LEAST_SIZE(xGrabDeviceReq); REQUEST_AT_LEAST_SIZE(xGrabDeviceReq);
...@@ -94,8 +92,8 @@ SProcXGrabDevice(client) ...@@ -94,8 +92,8 @@ SProcXGrabDevice(client)
SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count); SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
return(ProcXGrabDevice(client)); return (ProcXGrabDevice(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -104,52 +102,49 @@ SProcXGrabDevice(client) ...@@ -104,52 +102,49 @@ SProcXGrabDevice(client)
*/ */
int int
ProcXGrabDevice(client) ProcXGrabDevice(ClientPtr client)
ClientPtr client; {
{ int error;
int error; xGrabDeviceReply rep;
xGrabDeviceReply rep; DeviceIntPtr dev;
DeviceIntPtr dev; struct tmask tmp[EMASKSIZE];
struct tmask tmp[EMASKSIZE];
REQUEST(xGrabDeviceReq); REQUEST(xGrabDeviceReq);
REQUEST_AT_LEAST_SIZE(xGrabDeviceReq); REQUEST_AT_LEAST_SIZE(xGrabDeviceReq);
if (stuff->length !=(sizeof(xGrabDeviceReq)>>2) + stuff->event_count) if (stuff->length != (sizeof(xGrabDeviceReq) >> 2) + stuff->event_count) {
{ SendErrorToClient(client, IReqCode, X_GrabDevice, 0, BadLength);
SendErrorToClient (client, IReqCode, X_GrabDevice, 0, BadLength);
return Success; return Success;
} }
rep.repType = X_Reply; rep.repType = X_Reply;
rep.RepType = X_GrabDevice; rep.RepType = X_GrabDevice;
rep.sequenceNumber = client->sequence; rep.sequenceNumber = client->sequence;
rep.length = 0; rep.length = 0;
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL) if (dev == NULL) {
{
SendErrorToClient(client, IReqCode, X_GrabDevice, 0, BadDevice); SendErrorToClient(client, IReqCode, X_GrabDevice, 0, BadDevice);
return Success; return Success;
} }
if (CreateMaskFromList (client, (XEventClass *)&stuff[1], if (CreateMaskFromList(client, (XEventClass *) & stuff[1],
stuff->event_count, tmp, dev, X_GrabDevice) != Success) stuff->event_count, tmp, dev,
X_GrabDevice) != Success)
return Success; return Success;
error = GrabDevice (client, dev, stuff->this_device_mode, error = GrabDevice(client, dev, stuff->this_device_mode,
stuff->other_devices_mode, stuff->grabWindow, stuff->ownerEvents, stuff->other_devices_mode, stuff->grabWindow,
stuff->time, tmp[stuff->deviceid].mask, &rep.status); stuff->ownerEvents, stuff->time,
tmp[stuff->deviceid].mask, &rep.status);
if (error != Success) if (error != Success) {
{
SendErrorToClient(client, IReqCode, X_GrabDevice, 0, error); SendErrorToClient(client, IReqCode, X_GrabDevice, 0, error);
return Success; return Success;
} }
WriteReplyToClient(client, sizeof(xGrabDeviceReply), &rep); WriteReplyToClient(client, sizeof(xGrabDeviceReply), &rep);
return Success; return Success;
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -158,49 +153,39 @@ ProcXGrabDevice(client) ...@@ -158,49 +153,39 @@ ProcXGrabDevice(client)
*/ */
int int
CreateMaskFromList (client, list, count, mask, dev, req) CreateMaskFromList(ClientPtr client, XEventClass * list, int count,
ClientPtr client; struct tmask *mask, DeviceIntPtr dev, int req)
XEventClass *list; {
int count; int i, j;
struct tmask mask[]; int device;
DeviceIntPtr dev; DeviceIntPtr tdev;
int req;
{ for (i = 0; i < EMASKSIZE; i++) {
int i,j;
int device;
DeviceIntPtr tdev;
for (i=0; i<EMASKSIZE; i++)
{
mask[i].mask = 0; mask[i].mask = 0;
mask[i].dev = NULL; mask[i].dev = NULL;
} }
for (i=0; i<count; i++, list++) for (i = 0; i < count; i++, list++) {
{
device = *list >> 8; device = *list >> 8;
if (device > 255) if (device > 255) {
{
SendErrorToClient(client, IReqCode, req, 0, BadClass); SendErrorToClient(client, IReqCode, req, 0, BadClass);
return BadClass; return BadClass;
} }
tdev = LookupDeviceIntRec (device); tdev = LookupDeviceIntRec(device);
if (tdev==NULL || (dev != NULL && tdev != dev)) if (tdev == NULL || (dev != NULL && tdev != dev)) {
{
SendErrorToClient(client, IReqCode, req, 0, BadClass); SendErrorToClient(client, IReqCode, req, 0, BadClass);
return BadClass; return BadClass;
} }
for (j=0; j<ExtEventIndex; j++) for (j = 0; j < ExtEventIndex; j++)
if (EventInfo[j].type == (*list & 0xff)) if (EventInfo[j].type == (*list & 0xff)) {
{
mask[device].mask |= EventInfo[j].mask; mask[device].mask |= EventInfo[j].mask;
mask[device].dev = (Pointer) tdev; mask[device].dev = (Pointer) tdev;
break; break;
} }
}
return Success;
} }
return Success;
}
/*********************************************************************** /***********************************************************************
* *
...@@ -210,12 +195,9 @@ CreateMaskFromList (client, list, count, mask, dev, req) ...@@ -210,12 +195,9 @@ CreateMaskFromList (client, list, count, mask, dev, req)
*/ */
void void
SRepXGrabDevice (client, size, rep) SRepXGrabDevice(ClientPtr client, int size, xGrabDeviceReply * rep)
ClientPtr client; {
int size;
xGrabDeviceReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,31 +30,23 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,31 +30,23 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GRABDEV_H #ifndef GRABDEV_H
#define GRABDEV_H 1 #define GRABDEV_H 1
int int SProcXGrabDevice(ClientPtr /* client */
SProcXGrabDevice( );
ClientPtr /* client */
); int ProcXGrabDevice(ClientPtr /* client */
);
int
ProcXGrabDevice( int CreateMaskFromList(ClientPtr /* client */ ,
ClientPtr /* client */ XEventClass * /* list */ ,
); int /* count */ ,
struct tmask /* mask */ [],
int DeviceIntPtr /* dev */ ,
CreateMaskFromList ( int /* req */
ClientPtr /* client */, );
XEventClass * /* list */,
int /* count */, void SRepXGrabDevice(ClientPtr /* client */ ,
struct tmask /* mask */[], int /* size */ ,
DeviceIntPtr /* dev */, xGrabDeviceReply * /* rep */
int /* req */ );
);
void
SRepXGrabDevice (
ClientPtr /* client */,
int /* size */,
xGrabDeviceReply * /* rep */
);
#endif /* GRABDEV_H */ #endif /* GRABDEV_H */
...@@ -55,15 +55,15 @@ SOFTWARE. ...@@ -55,15 +55,15 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include "windowstr.h" /* window structure */ #include "windowstr.h" /* window structure */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "exevents.h" #include "exevents.h"
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "grabdev.h" #include "grabdev.h"
...@@ -76,9 +76,8 @@ SOFTWARE. ...@@ -76,9 +76,8 @@ SOFTWARE.
*/ */
int int
SProcXGrabDeviceButton(client) SProcXGrabDeviceButton(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xGrabDeviceButtonReq); REQUEST(xGrabDeviceButtonReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_AT_LEAST_SIZE(xGrabDeviceButtonReq); REQUEST_AT_LEAST_SIZE(xGrabDeviceButtonReq);
...@@ -89,8 +88,8 @@ SProcXGrabDeviceButton(client) ...@@ -89,8 +88,8 @@ SProcXGrabDeviceButton(client)
stuff->event_count * sizeof(CARD32)); stuff->event_count * sizeof(CARD32));
SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count); SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
return(ProcXGrabDeviceButton(client)); return (ProcXGrabDeviceButton(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -99,61 +98,55 @@ SProcXGrabDeviceButton(client) ...@@ -99,61 +98,55 @@ SProcXGrabDeviceButton(client)
*/ */
int int
ProcXGrabDeviceButton(client) ProcXGrabDeviceButton(ClientPtr client)
ClientPtr client; {
{ int ret;
int ret; DeviceIntPtr dev;
DeviceIntPtr dev; DeviceIntPtr mdev;
DeviceIntPtr mdev; XEventClass *class;
XEventClass *class; struct tmask tmp[EMASKSIZE];
struct tmask tmp[EMASKSIZE];
REQUEST(xGrabDeviceButtonReq); REQUEST(xGrabDeviceButtonReq);
REQUEST_AT_LEAST_SIZE(xGrabDeviceButtonReq); REQUEST_AT_LEAST_SIZE(xGrabDeviceButtonReq);
if (stuff->length !=(sizeof(xGrabDeviceButtonReq)>>2) + stuff->event_count) if (stuff->length !=
{ (sizeof(xGrabDeviceButtonReq) >> 2) + stuff->event_count) {
SendErrorToClient (client, IReqCode, X_GrabDeviceButton, 0, BadLength); SendErrorToClient(client, IReqCode, X_GrabDeviceButton, 0, BadLength);
return Success; return Success;
} }
dev = LookupDeviceIntRec (stuff->grabbed_device); dev = LookupDeviceIntRec(stuff->grabbed_device);
if (dev == NULL) if (dev == NULL) {
{ SendErrorToClient(client, IReqCode, X_GrabDeviceButton, 0, BadDevice);
SendErrorToClient(client, IReqCode, X_GrabDeviceButton, 0,
BadDevice);
return Success; return Success;
} }
if (stuff->modifier_device != UseXKeyboard) if (stuff->modifier_device != UseXKeyboard) {
{ mdev = LookupDeviceIntRec(stuff->modifier_device);
mdev = LookupDeviceIntRec (stuff->modifier_device); if (mdev == NULL) {
if (mdev == NULL) SendErrorToClient(client, IReqCode, X_GrabDeviceButton, 0,
{ BadDevice);
SendErrorToClient(client, IReqCode, X_GrabDeviceButton, 0,
BadDevice);
return Success; return Success;
} }
if (mdev->key == NULL) if (mdev->key == NULL) {
{ SendErrorToClient(client, IReqCode, X_GrabDeviceButton, 0,
SendErrorToClient(client, IReqCode, X_GrabDeviceButton, 0, BadMatch);
BadMatch);
return Success; return Success;
}
} }
else } else
mdev = (DeviceIntPtr) LookupKeyboardDevice(); mdev = (DeviceIntPtr) LookupKeyboardDevice();
class = (XEventClass *) (&stuff[1]); /* first word of values */ class = (XEventClass *) (&stuff[1]); /* first word of values */
if ((ret = CreateMaskFromList (client, class, if ((ret = CreateMaskFromList(client, class,
stuff->event_count, tmp, dev, X_GrabDeviceButton)) != Success) stuff->event_count, tmp, dev,
return Success; X_GrabDeviceButton)) != Success)
ret = GrabButton(client, dev, stuff->this_device_mode, return Success;
stuff->other_devices_mode, stuff->modifiers, mdev, stuff->button, ret = GrabButton(client, dev, stuff->this_device_mode,
stuff->grabWindow, stuff->ownerEvents, (Cursor)0, (Window)0, stuff->other_devices_mode, stuff->modifiers, mdev,
tmp[stuff->grabbed_device].mask); stuff->button, stuff->grabWindow, stuff->ownerEvents,
(Cursor) 0, (Window) 0, tmp[stuff->grabbed_device].mask);
if (ret != Success) if (ret != Success)
SendErrorToClient(client, IReqCode, X_GrabDeviceButton, 0, ret); SendErrorToClient(client, IReqCode, X_GrabDeviceButton, 0, ret);
return(Success); return (Success);
} }
...@@ -30,14 +30,10 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,14 +30,10 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GRABDEVB_H #ifndef GRABDEVB_H
#define GRABDEVB_H 1 #define GRABDEVB_H 1
int int SProcXGrabDeviceButton(ClientPtr /* client */
SProcXGrabDeviceButton( );
ClientPtr /* client */
); int ProcXGrabDeviceButton(ClientPtr /* client */
);
int
ProcXGrabDeviceButton(
ClientPtr /* client */
);
#endif /* GRABDEVB_H */ #endif /* GRABDEVB_H */
...@@ -55,15 +55,15 @@ SOFTWARE. ...@@ -55,15 +55,15 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include "windowstr.h" /* window structure */ #include "windowstr.h" /* window structure */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "exevents.h" #include "exevents.h"
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "grabdev.h" #include "grabdev.h"
...@@ -76,9 +76,8 @@ SOFTWARE. ...@@ -76,9 +76,8 @@ SOFTWARE.
*/ */
int int
SProcXGrabDeviceKey(client) SProcXGrabDeviceKey(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xGrabDeviceKeyReq); REQUEST(xGrabDeviceKeyReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_AT_LEAST_SIZE(xGrabDeviceKeyReq); REQUEST_AT_LEAST_SIZE(xGrabDeviceKeyReq);
...@@ -87,8 +86,8 @@ SProcXGrabDeviceKey(client) ...@@ -87,8 +86,8 @@ SProcXGrabDeviceKey(client)
swaps(&stuff->event_count); swaps(&stuff->event_count);
REQUEST_FIXED_SIZE(xGrabDeviceKeyReq, stuff->event_count * sizeof(CARD32)); REQUEST_FIXED_SIZE(xGrabDeviceKeyReq, stuff->event_count * sizeof(CARD32));
SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count); SwapLongs((CARD32 *) (&stuff[1]), stuff->event_count);
return(ProcXGrabDeviceKey(client)); return (ProcXGrabDeviceKey(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -97,66 +96,57 @@ SProcXGrabDeviceKey(client) ...@@ -97,66 +96,57 @@ SProcXGrabDeviceKey(client)
*/ */
int int
ProcXGrabDeviceKey(client) ProcXGrabDeviceKey(ClientPtr client)
ClientPtr client; {
{ int ret;
int ret; DeviceIntPtr dev;
DeviceIntPtr dev; DeviceIntPtr mdev;
DeviceIntPtr mdev; XEventClass *class;
XEventClass *class; struct tmask tmp[EMASKSIZE];
struct tmask tmp[EMASKSIZE];
REQUEST(xGrabDeviceKeyReq); REQUEST(xGrabDeviceKeyReq);
REQUEST_AT_LEAST_SIZE(xGrabDeviceKeyReq); REQUEST_AT_LEAST_SIZE(xGrabDeviceKeyReq);
if (stuff->length !=(sizeof(xGrabDeviceKeyReq)>>2) + stuff->event_count) if (stuff->length != (sizeof(xGrabDeviceKeyReq) >> 2) + stuff->event_count) {
{ SendErrorToClient(client, IReqCode, X_GrabDeviceKey, 0, BadLength);
SendErrorToClient (client, IReqCode, X_GrabDeviceKey, 0, BadLength);
return Success; return Success;
} }
dev = LookupDeviceIntRec (stuff->grabbed_device); dev = LookupDeviceIntRec(stuff->grabbed_device);
if (dev == NULL) if (dev == NULL) {
{ SendErrorToClient(client, IReqCode, X_GrabDeviceKey, 0, BadDevice);
SendErrorToClient(client, IReqCode, X_GrabDeviceKey, 0,
BadDevice);
return Success; return Success;
} }
if (stuff->modifier_device != UseXKeyboard) if (stuff->modifier_device != UseXKeyboard) {
{ mdev = LookupDeviceIntRec(stuff->modifier_device);
mdev = LookupDeviceIntRec (stuff->modifier_device); if (mdev == NULL) {
if (mdev == NULL) SendErrorToClient(client, IReqCode, X_GrabDeviceKey, 0, BadDevice);
{
SendErrorToClient(client, IReqCode, X_GrabDeviceKey, 0,
BadDevice);
return Success; return Success;
} }
if (mdev->key == NULL) if (mdev->key == NULL) {
{ SendErrorToClient(client, IReqCode, X_GrabDeviceKey, 0, BadMatch);
SendErrorToClient(client, IReqCode, X_GrabDeviceKey, 0,
BadMatch);
return Success; return Success;
}
} }
else } else
mdev = (DeviceIntPtr) LookupKeyboardDevice(); mdev = (DeviceIntPtr) LookupKeyboardDevice();
class = (XEventClass *) (&stuff[1]); /* first word of values */ class = (XEventClass *) (&stuff[1]); /* first word of values */
if ((ret = CreateMaskFromList (client, class, if ((ret = CreateMaskFromList(client, class,
stuff->event_count, tmp, dev, X_GrabDeviceKey)) != Success) stuff->event_count, tmp, dev,
return Success; X_GrabDeviceKey)) != Success)
return Success;
ret = GrabKey(client, dev, stuff->this_device_mode, ret = GrabKey(client, dev, stuff->this_device_mode,
stuff->other_devices_mode, stuff->modifiers, mdev, stuff->key, stuff->other_devices_mode, stuff->modifiers, mdev,
stuff->grabWindow, stuff->ownerEvents, tmp[stuff->grabbed_device].mask); stuff->key, stuff->grabWindow, stuff->ownerEvents,
tmp[stuff->grabbed_device].mask);
if (ret != Success) if (ret != Success) {
{
SendErrorToClient(client, IReqCode, X_GrabDeviceKey, 0, ret); SendErrorToClient(client, IReqCode, X_GrabDeviceKey, 0, ret);
return Success; return Success;
} }
return Success; return Success;
} }
...@@ -30,14 +30,10 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,14 +30,10 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GRABDEVK_H #ifndef GRABDEVK_H
#define GRABDEVK_H 1 #define GRABDEVK_H 1
int int SProcXGrabDeviceKey(ClientPtr /* client */
SProcXGrabDeviceKey( );
ClientPtr /* client */
); int ProcXGrabDeviceKey(ClientPtr /* client */
);
int
ProcXGrabDeviceKey(
ClientPtr /* client */
);
#endif /* GRABDEVK_H */ #endif /* GRABDEVK_H */
...@@ -55,13 +55,13 @@ SOFTWARE. ...@@ -55,13 +55,13 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exevents.h" #include "exevents.h"
#include "exglobals.h" #include "exglobals.h"
...@@ -74,16 +74,15 @@ SOFTWARE. ...@@ -74,16 +74,15 @@ SOFTWARE.
*/ */
int int
SProcXGetDeviceMotionEvents(client) SProcXGetDeviceMotionEvents(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xGetDeviceMotionEventsReq); REQUEST(xGetDeviceMotionEventsReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_SIZE_MATCH(xGetDeviceMotionEventsReq); REQUEST_SIZE_MATCH(xGetDeviceMotionEventsReq);
swapl(&stuff->start); swapl(&stuff->start);
swapl(&stuff->stop); swapl(&stuff->stop);
return(ProcXGetDeviceMotionEvents(client)); return (ProcXGetDeviceMotionEvents(client));
} }
/**************************************************************************** /****************************************************************************
* *
...@@ -92,36 +91,33 @@ register ClientPtr client; ...@@ -92,36 +91,33 @@ register ClientPtr client;
*/ */
int int
ProcXGetDeviceMotionEvents(client) ProcXGetDeviceMotionEvents(ClientPtr client)
ClientPtr client;
{ {
INT32 *coords = NULL, *bufptr; INT32 *coords = NULL, *bufptr;
xGetDeviceMotionEventsReply rep; xGetDeviceMotionEventsReply rep;
unsigned long i; unsigned long i;
int num_events, axes, size = 0, tsize; int num_events, axes, size = 0, tsize;
unsigned long nEvents; unsigned long nEvents;
DeviceIntPtr dev; DeviceIntPtr dev;
TimeStamp start, stop; TimeStamp start, stop;
int length = 0; int length = 0;
ValuatorClassPtr v; ValuatorClassPtr v;
REQUEST(xGetDeviceMotionEventsReq); REQUEST(xGetDeviceMotionEventsReq);
REQUEST_SIZE_MATCH(xGetDeviceMotionEventsReq); REQUEST_SIZE_MATCH(xGetDeviceMotionEventsReq);
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL) if (dev == NULL) {
{ SendErrorToClient(client, IReqCode, X_GetDeviceMotionEvents, 0,
SendErrorToClient(client, IReqCode, X_GetDeviceMotionEvents, 0, BadDevice);
BadDevice);
return Success; return Success;
} }
v = dev->valuator; v = dev->valuator;
if (v==NULL || v->numAxes == 0) if (v == NULL || v->numAxes == 0) {
{ SendErrorToClient(client, IReqCode, X_GetDeviceMotionEvents, 0,
SendErrorToClient(client, IReqCode, X_GetDeviceMotionEvents, 0, BadMatch);
BadMatch);
return Success; return Success;
} }
if (dev->valuator->motionHintWindow) if (dev->valuator->motionHintWindow)
MaybeStopDeviceHint(dev, client); MaybeStopDeviceHint(dev, client);
axes = v->numAxes; axes = v->numAxes;
...@@ -135,49 +131,43 @@ ProcXGetDeviceMotionEvents(client) ...@@ -135,49 +131,43 @@ ProcXGetDeviceMotionEvents(client)
start = ClientTimeToServerTime(stuff->start); start = ClientTimeToServerTime(stuff->start);
stop = ClientTimeToServerTime(stuff->stop); stop = ClientTimeToServerTime(stuff->stop);
if (CompareTimeStamps(start, stop) == LATER || if (CompareTimeStamps(start, stop) == LATER ||
CompareTimeStamps(start, currentTime) == LATER) CompareTimeStamps(start, currentTime) == LATER) {
{ WriteReplyToClient(client, sizeof(xGetDeviceMotionEventsReply), &rep);
WriteReplyToClient(client, sizeof(xGetDeviceMotionEventsReply), &rep); return Success;
return Success; }
}
if (CompareTimeStamps(stop, currentTime) == LATER) if (CompareTimeStamps(stop, currentTime) == LATER)
stop = currentTime; stop = currentTime;
num_events = v->numMotionEvents; num_events = v->numMotionEvents;
if (num_events) if (num_events) {
{ size = sizeof(Time) + (axes * sizeof(INT32));
size = sizeof(Time) + (axes * sizeof (INT32));
tsize = num_events * size; tsize = num_events * size;
coords = (INT32 *) malloc(tsize); coords = (INT32 *) malloc(tsize);
if (!coords) if (!coords)
{ {
SendErrorToClient(client, IReqCode, X_GetDeviceMotionEvents, 0, SendErrorToClient(client, IReqCode, X_GetDeviceMotionEvents, 0,
BadAlloc); BadAlloc);
return Success; return Success;
}
rep.nEvents = (v->GetMotionProc) (
dev, (xTimecoord *)coords, /* XXX */
start.milliseconds, stop.milliseconds, (ScreenPtr)NULL);
}
if (rep.nEvents > 0)
{
length = (rep.nEvents * size +3) >> 2;
rep.length = length;
} }
rep.nEvents = (v->GetMotionProc) (dev, (xTimecoord *) coords, /* XXX */
start.milliseconds, stop.milliseconds,
(ScreenPtr) NULL);
}
if (rep.nEvents > 0) {
length = (rep.nEvents * size + 3) >> 2;
rep.length = length;
}
nEvents = rep.nEvents; nEvents = rep.nEvents;
WriteReplyToClient(client, sizeof(xGetDeviceMotionEventsReply), &rep); WriteReplyToClient(client, sizeof(xGetDeviceMotionEventsReply), &rep);
if (nEvents) if (nEvents) {
{ if (client->swapped) {
if (client->swapped)
{
bufptr = coords; bufptr = coords;
for (i=0; i<nEvents * (axes+1); i++) for (i = 0; i < nEvents * (axes + 1); i++) {
{
swapl(bufptr); swapl(bufptr);
bufptr++; bufptr++;
}
} }
}
WriteToClient(client, length * 4, coords); WriteToClient(client, length * 4, coords);
} }
if (coords) if (coords)
free(coords); free(coords);
return Success; return Success;
...@@ -191,13 +181,11 @@ ProcXGetDeviceMotionEvents(client) ...@@ -191,13 +181,11 @@ ProcXGetDeviceMotionEvents(client)
*/ */
void void
SRepXGetDeviceMotionEvents (client, size, rep) SRepXGetDeviceMotionEvents(ClientPtr client, int size,
ClientPtr client; xGetDeviceMotionEventsReply * rep)
int size; {
xGetDeviceMotionEventsReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
swapl(&rep->nEvents); swapl(&rep->nEvents);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef GTMOTION_H #ifndef GTMOTION_H
#define GTMOTION_H 1 #define GTMOTION_H 1
int int SProcXGetDeviceMotionEvents(ClientPtr /* client */
SProcXGetDeviceMotionEvents( );
ClientPtr /* client */
); int ProcXGetDeviceMotionEvents(ClientPtr /* client */
);
int
ProcXGetDeviceMotionEvents( void SRepXGetDeviceMotionEvents(ClientPtr /* client */ ,
ClientPtr /* client */ int /* size */ ,
); xGetDeviceMotionEventsReply * /* rep */
);
void
SRepXGetDeviceMotionEvents (
ClientPtr /* client */,
int /* size */,
xGetDeviceMotionEventsReply * /* rep */
);
#endif /* GTMOTION_H */ #endif /* GTMOTION_H */
...@@ -30,73 +30,53 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,73 +30,53 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef LISTDEV_H #ifndef LISTDEV_H
#define LISTDEV_H 1 #define LISTDEV_H 1
int int SProcXListInputDevices(ClientPtr /* client */
SProcXListInputDevices( );
ClientPtr /* client */
); int ProcXListInputDevices(ClientPtr /* client */
);
int
ProcXListInputDevices ( void SizeDeviceInfo(DeviceIntPtr /* d */ ,
ClientPtr /* client */ int * /* namesize */ ,
); int * /* size */
);
void
SizeDeviceInfo ( void ListDeviceInfo(ClientPtr /* client */ ,
DeviceIntPtr /* d */, DeviceIntPtr /* d */ ,
int * /* namesize */, xDeviceInfoPtr /* dev */ ,
int * /* size */ char ** /* devbuf */ ,
); char ** /* classbuf */ ,
char ** /* namebuf */
void );
ListDeviceInfo (
ClientPtr /* client */, void CopyDeviceName(char ** /* namebuf */ ,
DeviceIntPtr /* d */, char * /* name */
xDeviceInfoPtr /* dev */, );
char ** /* devbuf */,
char ** /* classbuf */, void CopySwapDevice(ClientPtr /* client */ ,
char ** /* namebuf */ DeviceIntPtr /* d */ ,
); int /* num_classes */ ,
char ** /* buf */
void );
CopyDeviceName (
char ** /* namebuf */, void CopySwapKeyClass(ClientPtr /* client */ ,
char * /* name */ KeyClassPtr /* k */ ,
); char ** /* buf */
);
void
CopySwapDevice ( void CopySwapButtonClass(ClientPtr /* client */ ,
ClientPtr /* client */, ButtonClassPtr /* b */ ,
DeviceIntPtr /* d */, char ** /* buf */
int /* num_classes */, );
char ** /* buf */
); int CopySwapValuatorClass(ClientPtr /* client */ ,
ValuatorClassPtr /* v */ ,
void char ** /* buf */
CopySwapKeyClass ( );
ClientPtr /* client */,
KeyClassPtr /* k */, void SRepXListInputDevices(ClientPtr /* client */ ,
char ** /* buf */ int /* size */ ,
); xListInputDevicesReply * /* rep */
);
void
CopySwapButtonClass (
ClientPtr /* client */,
ButtonClassPtr /* b */,
char ** /* buf */
);
int
CopySwapValuatorClass (
ClientPtr /* client */,
ValuatorClassPtr /* v */,
char ** /* buf */
);
void
SRepXListInputDevices (
ClientPtr /* client */,
int /* size */,
xListInputDevicesReply * /* rep */
);
#endif /* LISTDEV_H */ #endif /* LISTDEV_H */
...@@ -55,20 +55,20 @@ SOFTWARE. ...@@ -55,20 +55,20 @@ SOFTWARE.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "XIstubs.h" #include "XIstubs.h"
#include "windowstr.h" /* window structure */ #include "windowstr.h" /* window structure */
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exglobals.h" #include "exglobals.h"
#include "opendev.h" #include "opendev.h"
extern CARD8 event_base []; extern CARD8 event_base[];
/*********************************************************************** /***********************************************************************
* *
...@@ -78,13 +78,12 @@ extern CARD8 event_base []; ...@@ -78,13 +78,12 @@ extern CARD8 event_base [];
*/ */
int int
SProcXOpenDevice(client) SProcXOpenDevice(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xOpenDeviceReq); REQUEST(xOpenDeviceReq);
swaps(&stuff->length); swaps(&stuff->length);
return(ProcXOpenDevice(client)); return (ProcXOpenDevice(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -93,45 +92,40 @@ SProcXOpenDevice(client) ...@@ -93,45 +92,40 @@ SProcXOpenDevice(client)
*/ */
int int
ProcXOpenDevice(client) ProcXOpenDevice(register ClientPtr client)
register ClientPtr client; {
{ xInputClassInfo evbase[numInputClasses];
xInputClassInfo evbase [numInputClasses];
Bool enableit = FALSE; Bool enableit = FALSE;
int j=0; int j = 0;
int status = Success; int status = Success;
xOpenDeviceReply rep; xOpenDeviceReply rep;
DeviceIntPtr dev; DeviceIntPtr dev;
REQUEST(xOpenDeviceReq); REQUEST(xOpenDeviceReq);
REQUEST_SIZE_MATCH(xOpenDeviceReq); REQUEST_SIZE_MATCH(xOpenDeviceReq);
if (stuff->deviceid == inputInfo.pointer->id || if (stuff->deviceid == inputInfo.pointer->id ||
stuff->deviceid == inputInfo.keyboard->id) stuff->deviceid == inputInfo.keyboard->id) {
{
SendErrorToClient(client, IReqCode, X_OpenDevice, 0, BadDevice); SendErrorToClient(client, IReqCode, X_OpenDevice, 0, BadDevice);
return Success; return Success;
} }
if ((dev = LookupDeviceIntRec(stuff->deviceid)) == NULL) /* not open */ if ((dev = LookupDeviceIntRec(stuff->deviceid)) == NULL) { /* not open */
{ for (dev = inputInfo.off_devices; dev; dev = dev->next)
for (dev=inputInfo.off_devices; dev; dev=dev->next)
if (dev->id == stuff->deviceid) if (dev->id == stuff->deviceid)
break; break;
if (dev == NULL) if (dev == NULL) {
{
SendErrorToClient(client, IReqCode, X_OpenDevice, 0, BadDevice); SendErrorToClient(client, IReqCode, X_OpenDevice, 0, BadDevice);
return Success; return Success;
}
enableit = TRUE;
} }
enableit = TRUE;
}
OpenInputDevice (dev, client, &status); OpenInputDevice(dev, client, &status);
if (status != Success) if (status != Success) {
{
SendErrorToClient(client, IReqCode, X_OpenDevice, 0, status); SendErrorToClient(client, IReqCode, X_OpenDevice, 0, status);
return Success; return Success;
} }
if (enableit && dev->inited && dev->startup) if (enableit && dev->inited && dev->startup)
(void)EnableDevice(dev); (void)EnableDevice(dev);
...@@ -139,45 +133,39 @@ ProcXOpenDevice(client) ...@@ -139,45 +133,39 @@ ProcXOpenDevice(client)
rep.repType = X_Reply; rep.repType = X_Reply;
rep.RepType = X_OpenDevice; rep.RepType = X_OpenDevice;
rep.sequenceNumber = client->sequence; rep.sequenceNumber = client->sequence;
if (dev->key != NULL) if (dev->key != NULL) {
{
evbase[j].class = KeyClass; evbase[j].class = KeyClass;
evbase[j++].event_type_base = event_base[KeyClass]; evbase[j++].event_type_base = event_base[KeyClass];
} }
if (dev->button != NULL) if (dev->button != NULL) {
{
evbase[j].class = ButtonClass; evbase[j].class = ButtonClass;
evbase[j++].event_type_base = event_base[ButtonClass]; evbase[j++].event_type_base = event_base[ButtonClass];
} }
if (dev->valuator != NULL) if (dev->valuator != NULL) {
{
evbase[j].class = ValuatorClass; evbase[j].class = ValuatorClass;
evbase[j++].event_type_base = event_base[ValuatorClass]; evbase[j++].event_type_base = event_base[ValuatorClass];
} }
if (dev->kbdfeed != NULL || dev->ptrfeed != NULL || dev->leds != NULL || if (dev->kbdfeed != NULL || dev->ptrfeed != NULL || dev->leds != NULL ||
dev->intfeed != NULL || dev->bell != NULL || dev->stringfeed != NULL) dev->intfeed != NULL || dev->bell != NULL || dev->stringfeed != NULL) {
{
evbase[j].class = FeedbackClass; evbase[j].class = FeedbackClass;
evbase[j++].event_type_base = event_base[FeedbackClass]; evbase[j++].event_type_base = event_base[FeedbackClass];
} }
if (dev->focus != NULL) if (dev->focus != NULL) {
{
evbase[j].class = FocusClass; evbase[j].class = FocusClass;
evbase[j++].event_type_base = event_base[FocusClass]; evbase[j++].event_type_base = event_base[FocusClass];
} }
if (dev->proximity != NULL) if (dev->proximity != NULL) {
{
evbase[j].class = ProximityClass; evbase[j].class = ProximityClass;
evbase[j++].event_type_base = event_base[ProximityClass]; evbase[j++].event_type_base = event_base[ProximityClass];
} }
evbase[j].class = OtherClass; evbase[j].class = OtherClass;
evbase[j++].event_type_base = event_base[OtherClass]; evbase[j++].event_type_base = event_base[OtherClass];
rep.length = (j * sizeof (xInputClassInfo) + 3) >> 2; rep.length = (j * sizeof(xInputClassInfo) + 3) >> 2;
rep.num_classes = j; rep.num_classes = j;
WriteReplyToClient (client, sizeof (xOpenDeviceReply), &rep); WriteReplyToClient(client, sizeof(xOpenDeviceReply), &rep);
WriteToClient(client, j * sizeof (xInputClassInfo), evbase); WriteToClient(client, j * sizeof (xInputClassInfo), evbase);
return (Success); return (Success);
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -187,12 +175,9 @@ ProcXOpenDevice(client) ...@@ -187,12 +175,9 @@ ProcXOpenDevice(client)
*/ */
void void
SRepXOpenDevice (client, size, rep) SRepXOpenDevice(ClientPtr client, int size, xOpenDeviceReply * rep)
ClientPtr client; {
int size;
xOpenDeviceReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef OPENDEV_H #ifndef OPENDEV_H
#define OPENDEV_H 1 #define OPENDEV_H 1
int int SProcXOpenDevice(ClientPtr /* client */
SProcXOpenDevice( );
ClientPtr /* client */
); int ProcXOpenDevice(ClientPtr /* client */
);
int
ProcXOpenDevice( void SRepXOpenDevice(ClientPtr /* client */ ,
ClientPtr /* client */ int /* size */ ,
); xOpenDeviceReply * /* rep */
);
void
SRepXOpenDevice (
ClientPtr /* client */,
int /* size */,
xOpenDeviceReply * /* rep */
);
#endif /* OPENDEV_H */ #endif /* OPENDEV_H */
...@@ -36,14 +36,14 @@ from The Open Group. ...@@ -36,14 +36,14 @@ from The Open Group.
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include "windowstr.h" /* window structure */ #include "windowstr.h" /* window structure */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exevents.h" #include "exevents.h"
#include "exglobals.h" #include "exglobals.h"
...@@ -56,13 +56,12 @@ from The Open Group. ...@@ -56,13 +56,12 @@ from The Open Group.
*/ */
int int
SProcXQueryDeviceState(client) SProcXQueryDeviceState(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xQueryDeviceStateReq); REQUEST(xQueryDeviceStateReq);
swaps(&stuff->length); swaps(&stuff->length);
return(ProcXQueryDeviceState(client)); return (ProcXQueryDeviceState(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -71,22 +70,21 @@ SProcXQueryDeviceState(client) ...@@ -71,22 +70,21 @@ SProcXQueryDeviceState(client)
*/ */
int int
ProcXQueryDeviceState(client) ProcXQueryDeviceState(register ClientPtr client)
register ClientPtr client; {
{ int i;
int i; int num_classes = 0;
int num_classes = 0; int total_length = 0;
int total_length = 0; char *buf, *savbuf;
char *buf, *savbuf; KeyClassPtr k;
KeyClassPtr k; xKeyState *tk;
xKeyState *tk; ButtonClassPtr b;
ButtonClassPtr b; xButtonState *tb;
xButtonState *tb; ValuatorClassPtr v;
ValuatorClassPtr v; xValuatorState *tv;
xValuatorState *tv; xQueryDeviceStateReply rep;
xQueryDeviceStateReply rep; DeviceIntPtr dev;
DeviceIntPtr dev; int *values;
int *values;
REQUEST(xQueryDeviceStateReq); REQUEST(xQueryDeviceStateReq);
REQUEST_SIZE_MATCH(xQueryDeviceStateReq); REQUEST_SIZE_MATCH(xQueryDeviceStateReq);
...@@ -96,96 +94,83 @@ ProcXQueryDeviceState(client) ...@@ -96,96 +94,83 @@ ProcXQueryDeviceState(client)
rep.length = 0; rep.length = 0;
rep.sequenceNumber = client->sequence; rep.sequenceNumber = client->sequence;
dev = LookupDeviceIntRec (stuff->deviceid); dev = LookupDeviceIntRec(stuff->deviceid);
if (dev == NULL) if (dev == NULL) {
{ SendErrorToClient(client, IReqCode, X_QueryDeviceState, 0, BadDevice);
SendErrorToClient(client, IReqCode, X_QueryDeviceState, 0,
BadDevice);
return Success; return Success;
} }
v = dev->valuator; v = dev->valuator;
if (v != NULL && v->motionHintWindow != NULL) if (v != NULL && v->motionHintWindow != NULL)
MaybeStopDeviceHint(dev, client); MaybeStopDeviceHint(dev, client);
k = dev->key; k = dev->key;
if (k != NULL) if (k != NULL) {
{ total_length += sizeof(xKeyState);
total_length += sizeof (xKeyState);
num_classes++; num_classes++;
} }
b = dev->button; b = dev->button;
if (b != NULL) if (b != NULL) {
{ total_length += sizeof(xButtonState);
total_length += sizeof (xButtonState);
num_classes++; num_classes++;
} }
if (v != NULL) if (v != NULL) {
{ total_length += (sizeof(xValuatorState) + (v->numAxes * sizeof(int)));
total_length += (sizeof(xValuatorState) +
(v->numAxes * sizeof(int)));
num_classes++; num_classes++;
} }
buf = (char *) malloc (total_length); buf = (char *)malloc(total_length);
if (!buf) if (!buf) {
{ SendErrorToClient(client, IReqCode, X_QueryDeviceState, 0, BadAlloc);
SendErrorToClient(client, IReqCode, X_QueryDeviceState, 0,
BadAlloc);
return Success; return Success;
} }
savbuf = buf; savbuf = buf;
if (k != NULL) if (k != NULL) {
{
tk = (xKeyState *) buf; tk = (xKeyState *) buf;
tk->class = KeyClass; tk->class = KeyClass;
tk->length = sizeof (xKeyState); tk->length = sizeof(xKeyState);
tk->num_keys = k->curKeySyms.maxKeyCode - k->curKeySyms.minKeyCode + 1; tk->num_keys = k->curKeySyms.maxKeyCode - k->curKeySyms.minKeyCode + 1;
for (i = 0; i<32; i++) for (i = 0; i < 32; i++)
tk->keys[i] = k->down[i]; tk->keys[i] = k->down[i];
buf += sizeof (xKeyState); buf += sizeof(xKeyState);
} }
if (b != NULL) if (b != NULL) {
{
tb = (xButtonState *) buf; tb = (xButtonState *) buf;
tb->class = ButtonClass; tb->class = ButtonClass;
tb->length = sizeof (xButtonState); tb->length = sizeof(xButtonState);
tb->num_buttons = b->numButtons; tb->num_buttons = b->numButtons;
for (i = 0; i<32; i++) for (i = 0; i < 32; i++)
tb->buttons[i] = b->down[i]; tb->buttons[i] = b->down[i];
buf += sizeof (xButtonState); buf += sizeof(xButtonState);
} }
if (v != NULL) if (v != NULL) {
{
tv = (xValuatorState *) buf; tv = (xValuatorState *) buf;
tv->class = ValuatorClass; tv->class = ValuatorClass;
tv->length = sizeof (xValuatorState); tv->length = sizeof(xValuatorState);
tv->num_valuators = v->numAxes; tv->num_valuators = v->numAxes;
tv->mode = v->mode; tv->mode = v->mode;
buf += sizeof(xValuatorState); buf += sizeof(xValuatorState);
for (i=0, values=v->axisVal; i<v->numAxes; i++) for (i = 0, values = v->axisVal; i < v->numAxes; i++) {
{ *((int *)buf) = *values++;
*((int *) buf) = *values++; if (client->swapped) {
if (client->swapped) swapl((int *)buf); /* macro - braces needed */
{
swapl ((int *) buf);/* macro - braces needed */
}
buf += sizeof(int);
} }
buf += sizeof(int);
} }
}
rep.num_classes = num_classes; rep.num_classes = num_classes;
rep.length = (total_length + 3) >> 2; rep.length = (total_length + 3) >> 2;
WriteReplyToClient (client, sizeof(xQueryDeviceStateReply), &rep); WriteReplyToClient(client, sizeof(xQueryDeviceStateReply), &rep);
if (total_length > 0) if (total_length > 0)
WriteToClient (client, total_length, savbuf); WriteToClient(client, total_length, savbuf);
free (savbuf); free(savbuf);
return Success; return Success;
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -195,12 +180,9 @@ ProcXQueryDeviceState(client) ...@@ -195,12 +180,9 @@ ProcXQueryDeviceState(client)
*/ */
void void
SRepXQueryDeviceState (client, size, rep) SRepXQueryDeviceState(ClientPtr client, int size, xQueryDeviceStateReply * rep)
ClientPtr client; {
int size;
xQueryDeviceStateReply *rep;
{
swaps(&rep->sequenceNumber); swaps(&rep->sequenceNumber);
swapl(&rep->length); swapl(&rep->length);
WriteToClient(client, size, rep); WriteToClient(client, size, rep);
} }
...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,21 +30,15 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef QUERYST_H #ifndef QUERYST_H
#define QUERYST_H 1 #define QUERYST_H 1
int int SProcXQueryDeviceState(ClientPtr /* client */
SProcXQueryDeviceState( );
ClientPtr /* client */
); int ProcXQueryDeviceState(ClientPtr /* client */
);
int
ProcXQueryDeviceState( void SRepXQueryDeviceState(ClientPtr /* client */ ,
ClientPtr /* client */ int /* size */ ,
); xQueryDeviceStateReply * /* rep */
);
void
SRepXQueryDeviceState (
ClientPtr /* client */,
int /* size */,
xQueryDeviceStateReply * /* rep */
);
#endif /* QUERYST_H */ #endif /* QUERYST_H */
...@@ -51,26 +51,27 @@ SOFTWARE. ...@@ -51,26 +51,27 @@ SOFTWARE.
* *
*/ */
#ifdef HAVE_DIX_CONFIG_H #ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h> #include <dix-config.h>
#endif #endif
#include <nx-X11/X.h> /* for inputstr.h */ #include <nx-X11/X.h> /* for inputstr.h */
#include <nx-X11/Xproto.h> /* Request macro */ #include <nx-X11/Xproto.h> /* Request macro */
#include "inputstr.h" /* DeviceIntPtr */ #include "inputstr.h" /* DeviceIntPtr */
#include "windowstr.h" /* window structure */ #include "windowstr.h" /* window structure */
#include <nx-X11/extensions/XI.h> #include <nx-X11/extensions/XI.h>
#include <nx-X11/extensions/XIproto.h> #include <nx-X11/extensions/XIproto.h>
#include "extnsionst.h" #include "extnsionst.h"
#include "extinit.h" /* LookupDeviceIntRec */ #include "extinit.h" /* LookupDeviceIntRec */
#include "exevents.h" #include "exevents.h"
#include "exglobals.h" #include "exglobals.h"
#include "grabdev.h" #include "grabdev.h"
#include "selectev.h" #include "selectev.h"
extern Mask ExtExclusiveMasks[]; extern Mask ExtExclusiveMasks[];
extern Mask ExtValidMasks[]; extern Mask ExtValidMasks[];
/*********************************************************************** /***********************************************************************
* *
...@@ -79,9 +80,8 @@ extern Mask ExtValidMasks[]; ...@@ -79,9 +80,8 @@ extern Mask ExtValidMasks[];
*/ */
int int
SProcXSelectExtensionEvent (client) SProcXSelectExtensionEvent(register ClientPtr client)
register ClientPtr client; {
{
REQUEST(xSelectExtensionEventReq); REQUEST(xSelectExtensionEventReq);
swaps(&stuff->length); swaps(&stuff->length);
REQUEST_AT_LEAST_SIZE(xSelectExtensionEventReq); REQUEST_AT_LEAST_SIZE(xSelectExtensionEventReq);
...@@ -91,8 +91,8 @@ register ClientPtr client; ...@@ -91,8 +91,8 @@ register ClientPtr client;
stuff->count * sizeof(CARD32)); stuff->count * sizeof(CARD32));
SwapLongs((CARD32 *) (&stuff[1]), stuff->count); SwapLongs((CARD32 *) (&stuff[1]), stuff->count);
return(ProcXSelectExtensionEvent(client)); return (ProcXSelectExtensionEvent(client));
} }
/*********************************************************************** /***********************************************************************
* *
...@@ -101,48 +101,46 @@ register ClientPtr client; ...@@ -101,48 +101,46 @@ register ClientPtr client;
*/ */
int int
ProcXSelectExtensionEvent (client) ProcXSelectExtensionEvent(register ClientPtr client)
register ClientPtr client; {
{ int ret;
int ret; int i;
int i; WindowPtr pWin;
WindowPtr pWin; struct tmask tmp[EMASKSIZE];
struct tmask tmp[EMASKSIZE];
REQUEST(xSelectExtensionEventReq); REQUEST(xSelectExtensionEventReq);
REQUEST_AT_LEAST_SIZE(xSelectExtensionEventReq); REQUEST_AT_LEAST_SIZE(xSelectExtensionEventReq);
if (stuff->length !=(sizeof(xSelectExtensionEventReq)>>2) + stuff->count) if (stuff->length != (sizeof(xSelectExtensionEventReq) >> 2) + stuff->count) {
{ SendErrorToClient(client, IReqCode, X_SelectExtensionEvent, 0,
SendErrorToClient (client, IReqCode, X_SelectExtensionEvent, 0, BadLength);
BadLength);
return Success; return Success;
} }
pWin = (WindowPtr) LookupWindow (stuff->window, client); pWin = (WindowPtr) LookupWindow(stuff->window, client);
if (!pWin) if (!pWin) {
{
client->errorValue = stuff->window; client->errorValue = stuff->window;
SendErrorToClient(client, IReqCode, X_SelectExtensionEvent, 0, SendErrorToClient(client, IReqCode, X_SelectExtensionEvent, 0,
BadWindow); BadWindow);
return Success; return Success;
} }
if ((ret = CreateMaskFromList (client, (XEventClass *)&stuff[1], if ((ret = CreateMaskFromList(client, (XEventClass *) & stuff[1],
stuff->count, tmp, NULL, X_SelectExtensionEvent)) != Success) stuff->count, tmp, NULL,
X_SelectExtensionEvent)) != Success)
return Success; return Success;
for (i=0; i<EMASKSIZE; i++) for (i = 0; i < EMASKSIZE; i++)
if (tmp[i].dev != NULL) if (tmp[i].dev != NULL) {
{ if ((ret =
if ((ret = SelectForWindow((DeviceIntPtr)tmp[i].dev, pWin, client, tmp[i].mask, SelectForWindow((DeviceIntPtr) tmp[i].dev, pWin, client,
ExtExclusiveMasks[i], ExtValidMasks[i])) != Success) tmp[i].mask, ExtExclusiveMasks[i],
{ ExtValidMasks[i])) != Success) {
SendErrorToClient(client, IReqCode, X_SelectExtensionEvent, 0, SendErrorToClient(client, IReqCode, X_SelectExtensionEvent, 0,
ret); ret);
return Success; return Success;
}
} }
}
return Success; return Success;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment