Input: rename DeviceIntRec->isMaster to ->type.
isMaster is not enough as long as we differ between master pointers and keyboard. With flexible device classes, the usual checks for whether a master device is a pointer (currently check for ->button, ->valuators or ->key) do not work as an SD may post an event through a master and mess this check up. Example, a device with valuators but no buttons would remove the button class from the VCP and thus result in the IsPointerDevice(inputInfo.pointer) == FALSE. This will become worse in the future when new device classes are introduced that aren't provided in the current system (e.g. a switch class). This patch replaces isMaster with "type", one of SLAVE, MASTER_POINTER and MASTER_KEYBOARD. All checks for dev->isMaster are replaced with an IsMaster(dev).
This commit is contained in:
parent
add2defac7
commit
b12d302df8
|
@ -303,7 +303,7 @@ ProcXTestFakeInput(ClientPtr client)
|
||||||
* virtual test device.
|
* virtual test device.
|
||||||
*/
|
*/
|
||||||
for(it = inputInfo.devices; it ; it = it->next )
|
for(it = inputInfo.devices; it ; it = it->next )
|
||||||
if( !it->isMaster && it->u.master == dev &&
|
if( !IsMaster(it) && it->u.master == dev &&
|
||||||
dixLookupPrivate(&it->devPrivates, XTstDevicePrivateKey ))
|
dixLookupPrivate(&it->devPrivates, XTstDevicePrivateKey ))
|
||||||
break;
|
break;
|
||||||
dev= it;
|
dev= it;
|
||||||
|
|
|
@ -243,7 +243,7 @@ ProcXIChangeHierarchy(ClientPtr client)
|
||||||
if (rc != Success)
|
if (rc != Success)
|
||||||
goto unwind;
|
goto unwind;
|
||||||
|
|
||||||
if (!ptr->isMaster)
|
if (!IsMaster(ptr))
|
||||||
{
|
{
|
||||||
client->errorValue = r->deviceid;
|
client->errorValue = r->deviceid;
|
||||||
rc = BadDevice;
|
rc = BadDevice;
|
||||||
|
@ -259,7 +259,7 @@ ProcXIChangeHierarchy(ClientPtr client)
|
||||||
}
|
}
|
||||||
|
|
||||||
for(xtstdevice = inputInfo.devices; xtstdevice ; xtstdevice = xtstdevice->next )
|
for(xtstdevice = inputInfo.devices; xtstdevice ; xtstdevice = xtstdevice->next )
|
||||||
if( !xtstdevice->isMaster && xtstdevice->u.master == ptr &&
|
if( !IsMaster(xtstdevice) && xtstdevice->u.master == ptr &&
|
||||||
dixLookupPrivate(&xtstdevice->devPrivates, XTstDevicePrivateKey ))
|
dixLookupPrivate(&xtstdevice->devPrivates, XTstDevicePrivateKey ))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -296,7 +296,7 @@ ProcXIChangeHierarchy(ClientPtr client)
|
||||||
{
|
{
|
||||||
/* Search the matching keyboard */
|
/* Search the matching keyboard */
|
||||||
for(xtstdevice = inputInfo.devices; xtstdevice ; xtstdevice = xtstdevice->next )
|
for(xtstdevice = inputInfo.devices; xtstdevice ; xtstdevice = xtstdevice->next )
|
||||||
if( !xtstdevice->isMaster &&
|
if( !IsMaster(xtstdevice) &&
|
||||||
xtstdevice->u.master == keybd &&
|
xtstdevice->u.master == keybd &&
|
||||||
IsKeyboardDevice(xtstdevice) &&
|
IsKeyboardDevice(xtstdevice) &&
|
||||||
dixLookupPrivate(&xtstdevice->devPrivates, XTstDevicePrivateKey ))
|
dixLookupPrivate(&xtstdevice->devPrivates, XTstDevicePrivateKey ))
|
||||||
|
@ -315,7 +315,7 @@ ProcXIChangeHierarchy(ClientPtr client)
|
||||||
xtstkeybd = xtstptr;
|
xtstkeybd = xtstptr;
|
||||||
/* Search the matching pointer */
|
/* Search the matching pointer */
|
||||||
for(xtstdevice = inputInfo.devices; xtstdevice ; xtstdevice = xtstdevice->next )
|
for(xtstdevice = inputInfo.devices; xtstdevice ; xtstdevice = xtstdevice->next )
|
||||||
if( !xtstdevice->isMaster &&
|
if( !IsMaster(xtstdevice) &&
|
||||||
xtstdevice->u.master == ptr &&
|
xtstdevice->u.master == ptr &&
|
||||||
IsPointerDevice(xtstdevice) &&
|
IsPointerDevice(xtstdevice) &&
|
||||||
dixLookupPrivate(&xtstdevice->devPrivates, XTstDevicePrivateKey )
|
dixLookupPrivate(&xtstdevice->devPrivates, XTstDevicePrivateKey )
|
||||||
|
@ -343,7 +343,7 @@ ProcXIChangeHierarchy(ClientPtr client)
|
||||||
if (rc != Success)
|
if (rc != Success)
|
||||||
goto unwind;
|
goto unwind;
|
||||||
|
|
||||||
if (!newptr->isMaster)
|
if (!IsMaster(newptr))
|
||||||
{
|
{
|
||||||
client->errorValue = r->return_pointer;
|
client->errorValue = r->return_pointer;
|
||||||
rc = BadDevice;
|
rc = BadDevice;
|
||||||
|
@ -355,7 +355,7 @@ ProcXIChangeHierarchy(ClientPtr client)
|
||||||
if (rc != Success)
|
if (rc != Success)
|
||||||
goto unwind;
|
goto unwind;
|
||||||
|
|
||||||
if (!newkeybd->isMaster)
|
if (!IsMaster(newkeybd))
|
||||||
{
|
{
|
||||||
client->errorValue = r->return_keyboard;
|
client->errorValue = r->return_keyboard;
|
||||||
rc = BadDevice;
|
rc = BadDevice;
|
||||||
|
@ -366,7 +366,7 @@ ProcXIChangeHierarchy(ClientPtr client)
|
||||||
attached;
|
attached;
|
||||||
attached = attached->next)
|
attached = attached->next)
|
||||||
{
|
{
|
||||||
if (!attached->isMaster) {
|
if (!IsMaster(attached)) {
|
||||||
if (attached->u.master == ptr)
|
if (attached->u.master == ptr)
|
||||||
{
|
{
|
||||||
AttachDevice(client, attached, newptr);
|
AttachDevice(client, attached, newptr);
|
||||||
|
@ -418,7 +418,7 @@ ProcXIChangeHierarchy(ClientPtr client)
|
||||||
if (rc != Success)
|
if (rc != Success)
|
||||||
goto unwind;
|
goto unwind;
|
||||||
|
|
||||||
if (ptr->isMaster)
|
if (IsMaster(ptr))
|
||||||
{
|
{
|
||||||
client->errorValue = c->deviceid;
|
client->errorValue = c->deviceid;
|
||||||
rc = BadDevice;
|
rc = BadDevice;
|
||||||
|
@ -451,7 +451,7 @@ ProcXIChangeHierarchy(ClientPtr client)
|
||||||
if (rc != Success)
|
if (rc != Success)
|
||||||
goto unwind;
|
goto unwind;
|
||||||
|
|
||||||
if (ptr->isMaster)
|
if (IsMaster(ptr))
|
||||||
{
|
{
|
||||||
client->errorValue = c->deviceid;
|
client->errorValue = c->deviceid;
|
||||||
rc = BadDevice;
|
rc = BadDevice;
|
||||||
|
@ -473,7 +473,7 @@ ProcXIChangeHierarchy(ClientPtr client)
|
||||||
client, DixWriteAccess);
|
client, DixWriteAccess);
|
||||||
if (rc != Success)
|
if (rc != Success)
|
||||||
goto unwind;
|
goto unwind;
|
||||||
if (!newmaster->isMaster)
|
if (!IsMaster(newmaster))
|
||||||
{
|
{
|
||||||
client->errorValue = c->new_master;
|
client->errorValue = c->new_master;
|
||||||
rc = BadDevice;
|
rc = BadDevice;
|
||||||
|
|
|
@ -721,7 +721,7 @@ ChangeMasterDeviceClasses(DeviceIntPtr device, DeviceChangedEvent *dce)
|
||||||
{
|
{
|
||||||
DeviceIntPtr master = device->u.master;
|
DeviceIntPtr master = device->u.master;
|
||||||
|
|
||||||
if (device->isMaster)
|
if (IsMaster(device))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!master) /* if device was set floating between SIGIO and now */
|
if (!master) /* if device was set floating between SIGIO and now */
|
||||||
|
@ -866,7 +866,7 @@ UpdateDeviceState(DeviceIntPtr device, DeviceEvent* event)
|
||||||
kptr = &b->down[key>>3];
|
kptr = &b->down[key>>3];
|
||||||
if (!(*kptr & bit))
|
if (!(*kptr & bit))
|
||||||
return DONT_PROCESS;
|
return DONT_PROCESS;
|
||||||
if (device->isMaster) {
|
if (IsMaster(device)) {
|
||||||
DeviceIntPtr sd;
|
DeviceIntPtr sd;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -875,7 +875,7 @@ UpdateDeviceState(DeviceIntPtr device, DeviceEvent* event)
|
||||||
* event being delivered through the slave first
|
* event being delivered through the slave first
|
||||||
*/
|
*/
|
||||||
for (sd = inputInfo.devices; sd; sd = sd->next) {
|
for (sd = inputInfo.devices; sd; sd = sd->next) {
|
||||||
if (sd->isMaster || sd->u.master != device)
|
if (IsMaster(sd) || sd->u.master != device)
|
||||||
continue;
|
continue;
|
||||||
if (!sd->button)
|
if (!sd->button)
|
||||||
continue;
|
continue;
|
||||||
|
@ -1007,7 +1007,7 @@ ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device)
|
||||||
b = device->button;
|
b = device->button;
|
||||||
k = device->key;
|
k = device->key;
|
||||||
|
|
||||||
if (device->isMaster || !device->u.master)
|
if (IsMaster(device) || !device->u.master)
|
||||||
CheckMotion(event, device);
|
CheckMotion(event, device);
|
||||||
|
|
||||||
switch (event->type)
|
switch (event->type)
|
||||||
|
@ -1201,7 +1201,7 @@ DeviceFocusEvent(DeviceIntPtr dev, int type, int mode, int detail,
|
||||||
DeviceIntPtr mouse;
|
DeviceIntPtr mouse;
|
||||||
int btlen, len, i;
|
int btlen, len, i;
|
||||||
|
|
||||||
mouse = (dev->isMaster || dev->u.master) ? GetPairedDevice(dev) : NULL;
|
mouse = (IsMaster(dev) || dev->u.master) ? GetPairedDevice(dev) : NULL;
|
||||||
|
|
||||||
/* XI 2 event */
|
/* XI 2 event */
|
||||||
btlen = (mouse->button) ? (mouse->button->numButtons + 7)/8 : 0;
|
btlen = (mouse->button) ? (mouse->button->numButtons + 7)/8 : 0;
|
||||||
|
|
12
Xi/listdev.c
12
Xi/listdev.c
|
@ -177,9 +177,9 @@ CopySwapDevice(ClientPtr client, DeviceIntPtr d, int num_classes,
|
||||||
dev->id = d->id;
|
dev->id = d->id;
|
||||||
dev->type = d->xinput_type;
|
dev->type = d->xinput_type;
|
||||||
dev->num_classes = num_classes;
|
dev->num_classes = num_classes;
|
||||||
if (d->isMaster && IsKeyboardDevice(d))
|
if (IsMaster(d) && IsKeyboardDevice(d))
|
||||||
dev->use = IsXKeyboard;
|
dev->use = IsXKeyboard;
|
||||||
else if (d->isMaster && IsPointerDevice(d))
|
else if (IsMaster(d) && IsPointerDevice(d))
|
||||||
dev->use = IsXPointer;
|
dev->use = IsXPointer;
|
||||||
else if (d->key && d->kbdfeed)
|
else if (d->key && d->kbdfeed)
|
||||||
dev->use = IsXExtensionKeyboard;
|
dev->use = IsXExtensionKeyboard;
|
||||||
|
@ -344,7 +344,7 @@ ProcXListInputDevices(ClientPtr client)
|
||||||
AddOtherInputDevices();
|
AddOtherInputDevices();
|
||||||
|
|
||||||
for (d = inputInfo.devices; d; d = d->next) {
|
for (d = inputInfo.devices; d; d = d->next) {
|
||||||
if (d->isMaster &&
|
if (IsMaster(d) &&
|
||||||
d != inputInfo.pointer &&
|
d != inputInfo.pointer &&
|
||||||
d != inputInfo.keyboard)
|
d != inputInfo.keyboard)
|
||||||
continue; /* don't send master devices other than VCP/VCK */
|
continue; /* don't send master devices other than VCP/VCK */
|
||||||
|
@ -357,7 +357,7 @@ ProcXListInputDevices(ClientPtr client)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (d = inputInfo.off_devices; d; d = d->next) {
|
for (d = inputInfo.off_devices; d; d = d->next) {
|
||||||
if (d->isMaster &&
|
if (IsMaster(d) &&
|
||||||
d != inputInfo.pointer &&
|
d != inputInfo.pointer &&
|
||||||
d != inputInfo.keyboard)
|
d != inputInfo.keyboard)
|
||||||
continue; /* don't send master devices other than VCP/VCK */
|
continue; /* don't send master devices other than VCP/VCK */
|
||||||
|
@ -378,7 +378,7 @@ ProcXListInputDevices(ClientPtr client)
|
||||||
dev = (xDeviceInfoPtr) devbuf;
|
dev = (xDeviceInfoPtr) devbuf;
|
||||||
for (d = inputInfo.devices; d; d = d->next)
|
for (d = inputInfo.devices; d; d = d->next)
|
||||||
{
|
{
|
||||||
if (d->isMaster &&
|
if (IsMaster(d) &&
|
||||||
d != inputInfo.pointer &&
|
d != inputInfo.pointer &&
|
||||||
d != inputInfo.keyboard)
|
d != inputInfo.keyboard)
|
||||||
continue; /* don't count master devices other than VCP/VCK */
|
continue; /* don't count master devices other than VCP/VCK */
|
||||||
|
@ -388,7 +388,7 @@ ProcXListInputDevices(ClientPtr client)
|
||||||
|
|
||||||
for (d = inputInfo.off_devices; d; d = d->next)
|
for (d = inputInfo.off_devices; d; d = d->next)
|
||||||
{
|
{
|
||||||
if (d->isMaster &&
|
if (IsMaster(d) &&
|
||||||
d != inputInfo.pointer &&
|
d != inputInfo.pointer &&
|
||||||
d != inputInfo.keyboard)
|
d != inputInfo.keyboard)
|
||||||
continue; /* don't count master devices other than VCP/VCK */
|
continue; /* don't count master devices other than VCP/VCK */
|
||||||
|
|
|
@ -112,7 +112,7 @@ ProcXOpenDevice(ClientPtr client)
|
||||||
} else if (status != Success)
|
} else if (status != Success)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
if (dev->isMaster)
|
if (IsMaster(dev))
|
||||||
return BadDevice;
|
return BadDevice;
|
||||||
|
|
||||||
OpenInputDevice(dev, client, &status);
|
OpenInputDevice(dev, client, &status);
|
||||||
|
|
|
@ -88,14 +88,14 @@ ProcXIQueryDevice(ClientPtr client)
|
||||||
for (dev = inputInfo.devices; dev; dev = dev->next)
|
for (dev = inputInfo.devices; dev; dev = dev->next)
|
||||||
{
|
{
|
||||||
if (stuff->deviceid == XIAllDevices ||
|
if (stuff->deviceid == XIAllDevices ||
|
||||||
(stuff->deviceid == XIAllMasterDevices && dev->isMaster))
|
(stuff->deviceid == XIAllMasterDevices && IsMaster(dev)))
|
||||||
len += SizeDeviceInfo(dev);
|
len += SizeDeviceInfo(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (dev = inputInfo.off_devices; dev; dev = dev->next)
|
for (dev = inputInfo.off_devices; dev; dev = dev->next)
|
||||||
{
|
{
|
||||||
if (stuff->deviceid == XIAllDevices ||
|
if (stuff->deviceid == XIAllDevices ||
|
||||||
(stuff->deviceid == XIAllMasterDevices && dev->isMaster))
|
(stuff->deviceid == XIAllMasterDevices && IsMaster(dev)))
|
||||||
len += SizeDeviceInfo(dev);
|
len += SizeDeviceInfo(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ ProcXIQueryDevice(ClientPtr client)
|
||||||
for (dev = inputInfo.devices; dev; dev = dev->next)
|
for (dev = inputInfo.devices; dev; dev = dev->next)
|
||||||
{
|
{
|
||||||
if (stuff->deviceid == XIAllDevices ||
|
if (stuff->deviceid == XIAllDevices ||
|
||||||
(stuff->deviceid == XIAllMasterDevices && dev->isMaster))
|
(stuff->deviceid == XIAllMasterDevices && IsMaster(dev)))
|
||||||
{
|
{
|
||||||
len = ListDeviceInfo(dev, (xXIDeviceInfo*)info);
|
len = ListDeviceInfo(dev, (xXIDeviceInfo*)info);
|
||||||
if (client->swapped)
|
if (client->swapped)
|
||||||
|
@ -139,7 +139,7 @@ ProcXIQueryDevice(ClientPtr client)
|
||||||
for (dev = inputInfo.off_devices; dev; dev = dev->next)
|
for (dev = inputInfo.off_devices; dev; dev = dev->next)
|
||||||
{
|
{
|
||||||
if (stuff->deviceid == XIAllDevices ||
|
if (stuff->deviceid == XIAllDevices ||
|
||||||
(stuff->deviceid == XIAllMasterDevices && dev->isMaster))
|
(stuff->deviceid == XIAllMasterDevices && IsMaster(dev)))
|
||||||
{
|
{
|
||||||
len = ListDeviceInfo(dev, (xXIDeviceInfo*)info);
|
len = ListDeviceInfo(dev, (xXIDeviceInfo*)info);
|
||||||
if (client->swapped)
|
if (client->swapped)
|
||||||
|
@ -326,7 +326,7 @@ int GetDeviceUse(DeviceIntPtr dev, uint16_t *attachment)
|
||||||
DeviceIntPtr master = dev->u.master;
|
DeviceIntPtr master = dev->u.master;
|
||||||
int use;
|
int use;
|
||||||
|
|
||||||
if (dev->isMaster)
|
if (IsMaster(dev))
|
||||||
{
|
{
|
||||||
DeviceIntPtr paired = GetPairedDevice(dev);
|
DeviceIntPtr paired = GetPairedDevice(dev);
|
||||||
use = IsPointerDevice(dev) ? XIMasterPointer : XIMasterKeyboard;
|
use = IsPointerDevice(dev) ? XIMasterPointer : XIMasterKeyboard;
|
||||||
|
|
|
@ -74,7 +74,7 @@ ProcXISetClientPointer(ClientPtr client)
|
||||||
if (rc != Success)
|
if (rc != Success)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
if (!IsPointerDevice(pDev) || !pDev->isMaster)
|
if (!IsPointerDevice(pDev) || !IsMaster(pDev))
|
||||||
{
|
{
|
||||||
client->errorValue = stuff->deviceid;
|
client->errorValue = stuff->deviceid;
|
||||||
return BadDevice;
|
return BadDevice;
|
||||||
|
|
|
@ -82,15 +82,15 @@ ProcXIAllowEvents(ClientPtr client)
|
||||||
AllowSome(client, time, dev, THAWED);
|
AllowSome(client, time, dev, THAWED);
|
||||||
break;
|
break;
|
||||||
case XIAsyncPairedDevice:
|
case XIAsyncPairedDevice:
|
||||||
if (dev->isMaster)
|
if (IsMaster(dev))
|
||||||
AllowSome(client, time, dev, THAW_OTHERS);
|
AllowSome(client, time, dev, THAW_OTHERS);
|
||||||
break;
|
break;
|
||||||
case XISyncPair:
|
case XISyncPair:
|
||||||
if (dev->isMaster)
|
if (IsMaster(dev))
|
||||||
AllowSome(client, time, dev, FREEZE_BOTH_NEXT_EVENT);
|
AllowSome(client, time, dev, FREEZE_BOTH_NEXT_EVENT);
|
||||||
break;
|
break;
|
||||||
case XIAsyncPair:
|
case XIAsyncPair:
|
||||||
if (dev->isMaster)
|
if (IsMaster(dev))
|
||||||
AllowSome(client, time, dev, THAWED_BOTH);
|
AllowSome(client, time, dev, THAWED_BOTH);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -74,7 +74,7 @@ ProcXIGrabDevice(ClientPtr client)
|
||||||
if (ret != Success)
|
if (ret != Success)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (!dev->isMaster)
|
if (!IsMaster(dev))
|
||||||
stuff->paired_device_mode = GrabModeAsync;
|
stuff->paired_device_mode = GrabModeAsync;
|
||||||
|
|
||||||
memset(mask.xi2mask, 0, sizeof(mask.xi2mask));
|
memset(mask.xi2mask, 0, sizeof(mask.xi2mask));
|
||||||
|
|
|
@ -102,7 +102,7 @@ ProcXIPassiveGrabDevice(ClientPtr client)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Can't grab for modifiers on an attached slave device */
|
/* Can't grab for modifiers on an attached slave device */
|
||||||
if (!dev->isMaster)
|
if (!IsMaster(dev))
|
||||||
{
|
{
|
||||||
if (!dev->u.master)
|
if (!dev->u.master)
|
||||||
stuff->paired_device_mode = GrabModeAsync;
|
stuff->paired_device_mode = GrabModeAsync;
|
||||||
|
@ -157,7 +157,7 @@ ProcXIPassiveGrabDevice(ClientPtr client)
|
||||||
if (!modifiers_failed)
|
if (!modifiers_failed)
|
||||||
return BadAlloc;
|
return BadAlloc;
|
||||||
|
|
||||||
if (IsPointerDevice(dev) && dev->isMaster)
|
if (IsPointerDevice(dev) && IsMaster(dev))
|
||||||
mod_dev = GetPairedDevice(dev);
|
mod_dev = GetPairedDevice(dev);
|
||||||
else
|
else
|
||||||
mod_dev = dev;
|
mod_dev = dev;
|
||||||
|
@ -261,7 +261,7 @@ ProcXIPassiveUngrabDevice(ClientPtr client)
|
||||||
if (rc != Success)
|
if (rc != Success)
|
||||||
return rc;
|
return rc;
|
||||||
|
|
||||||
if (dev->isMaster)
|
if (IsMaster(dev))
|
||||||
mod_dev = GetPairedDevice(dev);
|
mod_dev = GetPairedDevice(dev);
|
||||||
else
|
else
|
||||||
mod_dev = dev;
|
mod_dev = dev;
|
||||||
|
|
|
@ -152,7 +152,7 @@ PairDevices(ClientPtr client, DeviceIntPtr ptr, DeviceIntPtr kbd)
|
||||||
return BadDevice;
|
return BadDevice;
|
||||||
|
|
||||||
/* Don't allow pairing for slave devices */
|
/* Don't allow pairing for slave devices */
|
||||||
if (!ptr->isMaster || !kbd->isMaster)
|
if (!IsMaster(ptr) || !IsMaster(kbd))
|
||||||
return BadDevice;
|
return BadDevice;
|
||||||
|
|
||||||
if (ptr->spriteInfo->paired)
|
if (ptr->spriteInfo->paired)
|
||||||
|
@ -180,7 +180,7 @@ NextFreePointerDevice(void)
|
||||||
{
|
{
|
||||||
DeviceIntPtr dev;
|
DeviceIntPtr dev;
|
||||||
for (dev = inputInfo.devices; dev; dev = dev->next)
|
for (dev = inputInfo.devices; dev; dev = dev->next)
|
||||||
if (dev->isMaster &&
|
if (IsMaster(dev) &&
|
||||||
dev->spriteInfo->spriteOwner &&
|
dev->spriteInfo->spriteOwner &&
|
||||||
!dev->spriteInfo->paired)
|
!dev->spriteInfo->paired)
|
||||||
return dev;
|
return dev;
|
||||||
|
@ -306,7 +306,7 @@ EnableDevice(DeviceIntPtr dev, BOOL sendevent)
|
||||||
|
|
||||||
if (!dev->spriteInfo->sprite)
|
if (!dev->spriteInfo->sprite)
|
||||||
{
|
{
|
||||||
if (dev->isMaster)
|
if (IsMaster(dev))
|
||||||
{
|
{
|
||||||
/* Sprites appear on first root window, so we can hardcode it */
|
/* Sprites appear on first root window, so we can hardcode it */
|
||||||
if (dev->spriteInfo->spriteOwner)
|
if (dev->spriteInfo->spriteOwner)
|
||||||
|
@ -398,7 +398,7 @@ DisableDevice(DeviceIntPtr dev, BOOL sendevent)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
/* float attached devices */
|
/* float attached devices */
|
||||||
if (dev->isMaster)
|
if (IsMaster(dev))
|
||||||
{
|
{
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
|
@ -413,12 +413,12 @@ DisableDevice(DeviceIntPtr dev, BOOL sendevent)
|
||||||
{
|
{
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if (other->isMaster && other->u.lastSlave == dev)
|
if (IsMaster(other) && other->u.lastSlave == dev)
|
||||||
other->u.lastSlave = NULL;
|
other->u.lastSlave = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dev->isMaster && dev->spriteInfo->sprite)
|
if (IsMaster(dev) && dev->spriteInfo->sprite)
|
||||||
{
|
{
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
|
@ -488,7 +488,7 @@ ActivateDevice(DeviceIntPtr dev, BOOL sendevent)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
/* Initialize memory for sprites. */
|
/* Initialize memory for sprites. */
|
||||||
if (dev->isMaster && dev->spriteInfo->spriteOwner)
|
if (IsMaster(dev) && dev->spriteInfo->spriteOwner)
|
||||||
pScreen->DeviceCursorInitialize(dev, pScreen);
|
pScreen->DeviceCursorInitialize(dev, pScreen);
|
||||||
|
|
||||||
SendDevicePresenceEvent(dev->id, DeviceAdded);
|
SendDevicePresenceEvent(dev->id, DeviceAdded);
|
||||||
|
@ -847,7 +847,7 @@ CloseDevice(DeviceIntPtr dev)
|
||||||
(void)(*dev->deviceProc)(dev, DEVICE_CLOSE);
|
(void)(*dev->deviceProc)(dev, DEVICE_CLOSE);
|
||||||
|
|
||||||
/* free sprite memory */
|
/* free sprite memory */
|
||||||
if (dev->isMaster && dev->spriteInfo->sprite)
|
if (IsMaster(dev) && dev->spriteInfo->sprite)
|
||||||
screen->DeviceCursorCleanup(dev, screen);
|
screen->DeviceCursorCleanup(dev, screen);
|
||||||
|
|
||||||
/* free acceleration info */
|
/* free acceleration info */
|
||||||
|
@ -859,7 +859,7 @@ CloseDevice(DeviceIntPtr dev)
|
||||||
classes = (ClassesPtr)&dev->key;
|
classes = (ClassesPtr)&dev->key;
|
||||||
FreeAllDeviceClasses(classes);
|
FreeAllDeviceClasses(classes);
|
||||||
|
|
||||||
if (dev->isMaster)
|
if (IsMaster(dev))
|
||||||
{
|
{
|
||||||
classes = dixLookupPrivate(&dev->devPrivates, UnusedClassesPrivateKey);
|
classes = dixLookupPrivate(&dev->devPrivates, UnusedClassesPrivateKey);
|
||||||
FreeAllDeviceClasses(classes);
|
FreeAllDeviceClasses(classes);
|
||||||
|
@ -904,7 +904,7 @@ CloseDownDevices(void)
|
||||||
*/
|
*/
|
||||||
for (dev = inputInfo.devices; dev; dev = dev->next)
|
for (dev = inputInfo.devices; dev; dev = dev->next)
|
||||||
{
|
{
|
||||||
if (!dev->isMaster && dev->u.master)
|
if (!IsMaster(dev) && dev->u.master)
|
||||||
dev->u.master = NULL;
|
dev->u.master = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -990,7 +990,7 @@ RemoveDevice(DeviceIntPtr dev, BOOL sendevent)
|
||||||
else
|
else
|
||||||
prev->next = next;
|
prev->next = next;
|
||||||
|
|
||||||
flags[tmp->id] = (tmp->isMaster) ? XIMasterRemoved : XISlaveRemoved;
|
flags[tmp->id] = IsMaster(tmp) ? XIMasterRemoved : XISlaveRemoved;
|
||||||
CloseDevice(tmp);
|
CloseDevice(tmp);
|
||||||
ret = Success;
|
ret = Success;
|
||||||
}
|
}
|
||||||
|
@ -1000,7 +1000,7 @@ RemoveDevice(DeviceIntPtr dev, BOOL sendevent)
|
||||||
for (tmp = inputInfo.off_devices; tmp; (prev = tmp), (tmp = next)) {
|
for (tmp = inputInfo.off_devices; tmp; (prev = tmp), (tmp = next)) {
|
||||||
next = tmp->next;
|
next = tmp->next;
|
||||||
if (tmp == dev) {
|
if (tmp == dev) {
|
||||||
flags[tmp->id] = (tmp->isMaster) ? XIMasterRemoved : XISlaveRemoved;
|
flags[tmp->id] = IsMaster(tmp) ? XIMasterRemoved : XISlaveRemoved;
|
||||||
CloseDevice(tmp);
|
CloseDevice(tmp);
|
||||||
|
|
||||||
if (prev == NULL)
|
if (prev == NULL)
|
||||||
|
@ -1194,7 +1194,7 @@ InitValuatorClassDeviceStruct(DeviceIntPtr dev, int numAxes,
|
||||||
}
|
}
|
||||||
|
|
||||||
dev->last.numValuators = numAxes;
|
dev->last.numValuators = numAxes;
|
||||||
if(dev->isMaster) /* master devs do not accelerate */
|
if(IsMaster(dev)) /* master devs do not accelerate */
|
||||||
InitPointerAccelerationScheme(dev, PtrAccelNoOp);
|
InitPointerAccelerationScheme(dev, PtrAccelNoOp);
|
||||||
else
|
else
|
||||||
InitPointerAccelerationScheme(dev, PtrAccelDefault);
|
InitPointerAccelerationScheme(dev, PtrAccelDefault);
|
||||||
|
@ -1226,7 +1226,7 @@ InitPointerAccelerationScheme(DeviceIntPtr dev,
|
||||||
if(!val)
|
if(!val)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if(dev->isMaster && (scheme != PtrAccelNoOp))
|
if(IsMaster(dev) && (scheme != PtrAccelNoOp))
|
||||||
scheme = PtrAccelNoOp; /* no accel for master devices */
|
scheme = PtrAccelNoOp; /* no accel for master devices */
|
||||||
|
|
||||||
for(x = 0; pointerAccelerationScheme[x].number >= 0; x++) {
|
for(x = 0; pointerAccelerationScheme[x].number >= 0; x++) {
|
||||||
|
@ -1587,7 +1587,7 @@ ProcChangeKeyboardMapping(ClientPtr client)
|
||||||
stuff->keyCodes, NULL, client);
|
stuff->keyCodes, NULL, client);
|
||||||
|
|
||||||
for (tmp = inputInfo.devices; tmp; tmp = tmp->next) {
|
for (tmp = inputInfo.devices; tmp; tmp = tmp->next) {
|
||||||
if (tmp->isMaster || tmp->u.master != pDev)
|
if (IsMaster(tmp) || tmp->u.master != pDev)
|
||||||
continue;
|
continue;
|
||||||
if (!tmp->key)
|
if (!tmp->key)
|
||||||
continue;
|
continue;
|
||||||
|
@ -1932,7 +1932,7 @@ ProcChangeKeyboardControl (ClientPtr client)
|
||||||
keyboard = PickKeyboard(client);
|
keyboard = PickKeyboard(client);
|
||||||
|
|
||||||
for (pDev = inputInfo.devices; pDev; pDev = pDev->next) {
|
for (pDev = inputInfo.devices; pDev; pDev = pDev->next) {
|
||||||
if ((pDev == keyboard || (!pDev->isMaster && pDev->u.master == keyboard)) &&
|
if ((pDev == keyboard || (!IsMaster(keyboard) && pDev->u.master == keyboard)) &&
|
||||||
pDev->kbdfeed && pDev->kbdfeed->CtrlProc) {
|
pDev->kbdfeed && pDev->kbdfeed->CtrlProc) {
|
||||||
ret = XaceHook(XACE_DEVICE_ACCESS, client, pDev, DixManageAccess);
|
ret = XaceHook(XACE_DEVICE_ACCESS, client, pDev, DixManageAccess);
|
||||||
if (ret != Success)
|
if (ret != Success)
|
||||||
|
@ -1941,7 +1941,7 @@ ProcChangeKeyboardControl (ClientPtr client)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (pDev = inputInfo.devices; pDev; pDev = pDev->next) {
|
for (pDev = inputInfo.devices; pDev; pDev = pDev->next) {
|
||||||
if ((pDev == keyboard || (!pDev->isMaster && pDev->u.master == keyboard)) &&
|
if ((pDev == keyboard || (!IsMaster(keyboard) && pDev->u.master == keyboard)) &&
|
||||||
pDev->kbdfeed && pDev->kbdfeed->CtrlProc) {
|
pDev->kbdfeed && pDev->kbdfeed->CtrlProc) {
|
||||||
ret = DoChangeKeyboardControl(client, pDev, vlist, vmask);
|
ret = DoChangeKeyboardControl(client, pDev, vlist, vmask);
|
||||||
if (ret != Success)
|
if (ret != Success)
|
||||||
|
@ -2010,7 +2010,7 @@ ProcBell(ClientPtr client)
|
||||||
newpercent = base - newpercent + stuff->percent;
|
newpercent = base - newpercent + stuff->percent;
|
||||||
|
|
||||||
for (dev = inputInfo.devices; dev; dev = dev->next) {
|
for (dev = inputInfo.devices; dev; dev = dev->next) {
|
||||||
if ((dev == keybd || (!dev->isMaster && dev->u.master == keybd)) &&
|
if ((dev == keybd || (!IsMaster(dev) && dev->u.master == keybd)) &&
|
||||||
dev->kbdfeed && dev->kbdfeed->BellProc) {
|
dev->kbdfeed && dev->kbdfeed->BellProc) {
|
||||||
|
|
||||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixBellAccess);
|
rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixBellAccess);
|
||||||
|
@ -2082,7 +2082,7 @@ ProcChangePointerControl(ClientPtr client)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (dev = inputInfo.devices; dev; dev = dev->next) {
|
for (dev = inputInfo.devices; dev; dev = dev->next) {
|
||||||
if ((dev == mouse || (!dev->isMaster && dev->u.master == mouse)) &&
|
if ((dev == mouse || (!IsMaster(dev) && dev->u.master == mouse)) &&
|
||||||
dev->ptrfeed && dev->ptrfeed->CtrlProc) {
|
dev->ptrfeed && dev->ptrfeed->CtrlProc) {
|
||||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixManageAccess);
|
rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixManageAccess);
|
||||||
if (rc != Success)
|
if (rc != Success)
|
||||||
|
@ -2091,7 +2091,7 @@ ProcChangePointerControl(ClientPtr client)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (dev = inputInfo.devices; dev; dev = dev->next) {
|
for (dev = inputInfo.devices; dev; dev = dev->next) {
|
||||||
if ((dev == mouse || (!dev->isMaster && dev->u.master == mouse)) &&
|
if ((dev == mouse || (!IsMaster(dev) && dev->u.master == mouse)) &&
|
||||||
dev->ptrfeed && dev->ptrfeed->CtrlProc) {
|
dev->ptrfeed && dev->ptrfeed->CtrlProc) {
|
||||||
dev->ptrfeed->ctrl = ctrl;
|
dev->ptrfeed->ctrl = ctrl;
|
||||||
(*dev->ptrfeed->CtrlProc)(dev, &mouse->ptrfeed->ctrl);
|
(*dev->ptrfeed->CtrlProc)(dev, &mouse->ptrfeed->ctrl);
|
||||||
|
@ -2246,10 +2246,10 @@ AttachDevice(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr master)
|
||||||
{
|
{
|
||||||
ScreenPtr screen;
|
ScreenPtr screen;
|
||||||
DeviceIntPtr oldmaster;
|
DeviceIntPtr oldmaster;
|
||||||
if (!dev || dev->isMaster)
|
if (!dev || IsMaster(dev))
|
||||||
return BadDevice;
|
return BadDevice;
|
||||||
|
|
||||||
if (master && !master->isMaster) /* can't attach to slaves */
|
if (master && !IsMaster(master)) /* can't attach to slaves */
|
||||||
return BadDevice;
|
return BadDevice;
|
||||||
|
|
||||||
/* set from floating to floating? */
|
/* set from floating to floating? */
|
||||||
|
@ -2310,7 +2310,7 @@ AttachDevice(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr master)
|
||||||
{
|
{
|
||||||
DeviceIntPtr it;
|
DeviceIntPtr it;
|
||||||
for (it = inputInfo.devices; it; it = it->next)
|
for (it = inputInfo.devices; it; it = it->next)
|
||||||
if (!it->isMaster && it->u.master == oldmaster)
|
if (!IsMaster(it) && it->u.master == oldmaster)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (!it) /* no dev is paired with old master */
|
if (!it) /* no dev is paired with old master */
|
||||||
|
@ -2338,7 +2338,7 @@ AttachDevice(ClientPtr client, DeviceIntPtr dev, DeviceIntPtr master)
|
||||||
DeviceIntPtr
|
DeviceIntPtr
|
||||||
GetPairedDevice(DeviceIntPtr dev)
|
GetPairedDevice(DeviceIntPtr dev)
|
||||||
{
|
{
|
||||||
if (!dev->isMaster && dev->u.master)
|
if (!IsMaster(dev) && dev->u.master)
|
||||||
dev = dev->u.master;
|
dev = dev->u.master;
|
||||||
|
|
||||||
return dev->spriteInfo->paired;
|
return dev->spriteInfo->paired;
|
||||||
|
@ -2380,7 +2380,7 @@ AllocDevicePair (ClientPtr client, char* name,
|
||||||
|
|
||||||
pointer->u.lastSlave = NULL;
|
pointer->u.lastSlave = NULL;
|
||||||
pointer->last.slave = NULL;
|
pointer->last.slave = NULL;
|
||||||
pointer->isMaster = master;
|
pointer->type = (master) ? MASTER_POINTER : SLAVE;
|
||||||
|
|
||||||
keyboard = AddInputDevice(client, CoreKeyboardProc, TRUE);
|
keyboard = AddInputDevice(client, CoreKeyboardProc, TRUE);
|
||||||
if (!keyboard)
|
if (!keyboard)
|
||||||
|
@ -2403,7 +2403,7 @@ AllocDevicePair (ClientPtr client, char* name,
|
||||||
|
|
||||||
keyboard->u.lastSlave = NULL;
|
keyboard->u.lastSlave = NULL;
|
||||||
keyboard->last.slave = NULL;
|
keyboard->last.slave = NULL;
|
||||||
keyboard->isMaster = master;
|
keyboard->type = (master) ? MASTER_KEYBOARD : SLAVE;
|
||||||
|
|
||||||
|
|
||||||
/* The ClassesRec stores the device classes currently not used. */
|
/* The ClassesRec stores the device classes currently not used. */
|
||||||
|
|
|
@ -546,7 +546,7 @@ CoreEnterLeaveEvents(DeviceIntPtr dev,
|
||||||
WindowPtr to,
|
WindowPtr to,
|
||||||
int mode)
|
int mode)
|
||||||
{
|
{
|
||||||
if (!dev->isMaster)
|
if (!IsMaster(dev))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
LeaveWindow(dev, from, mode);
|
LeaveWindow(dev, from, mode);
|
||||||
|
@ -1216,7 +1216,7 @@ CoreFocusEvents(DeviceIntPtr dev,
|
||||||
WindowPtr to,
|
WindowPtr to,
|
||||||
int mode)
|
int mode)
|
||||||
{
|
{
|
||||||
if (!dev->isMaster)
|
if (!IsMaster(dev))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
SetFocusOut(dev, from);
|
SetFocusOut(dev, from);
|
||||||
|
|
41
dix/events.c
41
dix/events.c
|
@ -329,7 +329,7 @@ DevHasCursor(DeviceIntPtr pDev)
|
||||||
Bool
|
Bool
|
||||||
IsPointerDevice(DeviceIntPtr dev)
|
IsPointerDevice(DeviceIntPtr dev)
|
||||||
{
|
{
|
||||||
return (dev->valuator && dev->button);
|
return (dev->type == MASTER_POINTER) || (dev->valuator && dev->button);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -342,7 +342,14 @@ IsPointerDevice(DeviceIntPtr dev)
|
||||||
Bool
|
Bool
|
||||||
IsKeyboardDevice(DeviceIntPtr dev)
|
IsKeyboardDevice(DeviceIntPtr dev)
|
||||||
{
|
{
|
||||||
return (dev->key && dev->kbdfeed) && !IsPointerDevice(dev);
|
return (dev->type == MASTER_KEYBOARD) ||
|
||||||
|
((dev->key && dev->kbdfeed) && !IsPointerDevice(dev));
|
||||||
|
}
|
||||||
|
|
||||||
|
Bool
|
||||||
|
IsMaster(DeviceIntPtr dev)
|
||||||
|
{
|
||||||
|
return (dev->type == MASTER_POINTER || dev->type == MASTER_KEYBOARD);
|
||||||
}
|
}
|
||||||
|
|
||||||
static WindowPtr XYToWindow(
|
static WindowPtr XYToWindow(
|
||||||
|
@ -455,7 +462,7 @@ GetWindowXI2Mask(DeviceIntPtr dev, WindowPtr win, xEvent* ev)
|
||||||
|
|
||||||
return ((inputMasks->xi2mask[dev->id][evtype/8] & filter) ||
|
return ((inputMasks->xi2mask[dev->id][evtype/8] & filter) ||
|
||||||
inputMasks->xi2mask[XIAllDevices][evtype/8] ||
|
inputMasks->xi2mask[XIAllDevices][evtype/8] ||
|
||||||
(inputMasks->xi2mask[XIAllMasterDevices][evtype/8] && dev->isMaster));
|
(inputMasks->xi2mask[XIAllMasterDevices][evtype/8] && IsMaster(dev)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static Mask
|
static Mask
|
||||||
|
@ -467,7 +474,7 @@ GetEventMask(DeviceIntPtr dev, xEvent *event, InputClients* other)
|
||||||
int byte = ((xGenericEvent*)event)->evtype / 8;
|
int byte = ((xGenericEvent*)event)->evtype / 8;
|
||||||
return (other->xi2mask[dev->id][byte] |
|
return (other->xi2mask[dev->id][byte] |
|
||||||
other->xi2mask[XIAllDevices][byte] |
|
other->xi2mask[XIAllDevices][byte] |
|
||||||
(dev->isMaster? other->xi2mask[XIAllMasterDevices][byte] : 0));
|
(IsMaster(dev)? other->xi2mask[XIAllMasterDevices][byte] : 0));
|
||||||
} else if (CORE_EVENT(event))
|
} else if (CORE_EVENT(event))
|
||||||
return other->mask[XIAllDevices];
|
return other->mask[XIAllDevices];
|
||||||
else
|
else
|
||||||
|
@ -1404,7 +1411,7 @@ CheckGrabForSyncs(DeviceIntPtr thisDev, Bool thisMode, Bool otherMode)
|
||||||
The correct thing to do would be to freeze all SDs attached to the
|
The correct thing to do would be to freeze all SDs attached to the
|
||||||
paired master device.
|
paired master device.
|
||||||
*/
|
*/
|
||||||
if (thisDev->isMaster)
|
if (IsMaster(thisDev))
|
||||||
{
|
{
|
||||||
dev = GetPairedDevice(thisDev);
|
dev = GetPairedDevice(thisDev);
|
||||||
if (otherMode == GrabModeSync)
|
if (otherMode == GrabModeSync)
|
||||||
|
@ -1453,7 +1460,7 @@ RestoreOldMaster(DeviceIntPtr dev)
|
||||||
{
|
{
|
||||||
GrabMemoryPtr gm;
|
GrabMemoryPtr gm;
|
||||||
|
|
||||||
if (dev->isMaster)
|
if (IsMaster(dev))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
gm = (GrabMemoryPtr)dixLookupPrivate(&dev->devPrivates, GrabPrivateKey);
|
gm = (GrabMemoryPtr)dixLookupPrivate(&dev->devPrivates, GrabPrivateKey);
|
||||||
|
@ -1491,7 +1498,7 @@ ActivatePointerGrab(DeviceIntPtr mouse, GrabPtr grab,
|
||||||
Bool isPassive = autoGrab & ~ImplicitGrabMask;
|
Bool isPassive = autoGrab & ~ImplicitGrabMask;
|
||||||
|
|
||||||
/* slave devices need to float for the duration of the grab. */
|
/* slave devices need to float for the duration of the grab. */
|
||||||
if (!isPassive && !mouse->isMaster)
|
if (!isPassive && !IsMaster(mouse))
|
||||||
{
|
{
|
||||||
SaveOldMaster(mouse);
|
SaveOldMaster(mouse);
|
||||||
AttachDevice(NULL, mouse, NULL);
|
AttachDevice(NULL, mouse, NULL);
|
||||||
|
@ -1569,7 +1576,7 @@ ActivateKeyboardGrab(DeviceIntPtr keybd, GrabPtr grab, TimeStamp time, Bool pass
|
||||||
WindowPtr oldWin;
|
WindowPtr oldWin;
|
||||||
|
|
||||||
/* slave devices need to float for the duration of the grab. */
|
/* slave devices need to float for the duration of the grab. */
|
||||||
if (!passive && !keybd->isMaster)
|
if (!passive && !IsMaster(keybd))
|
||||||
{
|
{
|
||||||
SaveOldMaster(keybd);
|
SaveOldMaster(keybd);
|
||||||
AttachDevice(NULL, keybd, NULL);
|
AttachDevice(NULL, keybd, NULL);
|
||||||
|
@ -2311,7 +2318,7 @@ EventIsDeliverable(DeviceIntPtr dev, InternalEvent* event, WindowPtr win)
|
||||||
filter = GetEventFilter(dev, &ev);
|
filter = GetEventFilter(dev, &ev);
|
||||||
if (type && (inputMasks = wOtherInputMasks(win)) &&
|
if (type && (inputMasks = wOtherInputMasks(win)) &&
|
||||||
((inputMasks->xi2mask[XIAllDevices][type/8] & filter) ||
|
((inputMasks->xi2mask[XIAllDevices][type/8] & filter) ||
|
||||||
((inputMasks->xi2mask[XIAllMasterDevices][type/8] & filter) && dev->isMaster) ||
|
((inputMasks->xi2mask[XIAllMasterDevices][type/8] & filter) && IsMaster(dev)) ||
|
||||||
(inputMasks->xi2mask[dev->id][type/8] & filter)))
|
(inputMasks->xi2mask[dev->id][type/8] & filter)))
|
||||||
rc |= XI2_MASK;
|
rc |= XI2_MASK;
|
||||||
|
|
||||||
|
@ -2430,7 +2437,7 @@ DeliverDeviceEvents(WindowPtr pWin, InternalEvent *event, GrabPtr grab,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Core event */
|
/* Core event */
|
||||||
if ((mask & CORE_MASK) && dev->isMaster && dev->coreEvents)
|
if ((mask & CORE_MASK) && IsMaster(dev) && dev->coreEvents)
|
||||||
{
|
{
|
||||||
rc = EventToCore(event, &core);
|
rc = EventToCore(event, &core);
|
||||||
if (rc != Success)
|
if (rc != Success)
|
||||||
|
@ -3160,7 +3167,7 @@ ProcWarpPointer(ClientPtr client)
|
||||||
dev = PickPointer(client);
|
dev = PickPointer(client);
|
||||||
|
|
||||||
for (tmp = inputInfo.devices; tmp; tmp = tmp->next) {
|
for (tmp = inputInfo.devices; tmp; tmp = tmp->next) {
|
||||||
if ((tmp == dev) || (!tmp->isMaster && tmp->u.master == dev)) {
|
if ((tmp == dev) || (!IsMaster(tmp) && tmp->u.master == dev)) {
|
||||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixWriteAccess);
|
rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixWriteAccess);
|
||||||
if (rc != Success)
|
if (rc != Success)
|
||||||
return rc;
|
return rc;
|
||||||
|
@ -3492,7 +3499,7 @@ CheckDeviceGrabs(DeviceIntPtr device, DeviceEvent *event, int checkFirst)
|
||||||
int i;
|
int i;
|
||||||
WindowPtr pWin = NULL;
|
WindowPtr pWin = NULL;
|
||||||
FocusClassPtr focus = IsPointerEvent((InternalEvent*)event) ? NULL : device->focus;
|
FocusClassPtr focus = IsPointerEvent((InternalEvent*)event) ? NULL : device->focus;
|
||||||
BOOL sendCore = (device->isMaster && device->coreEvents);
|
BOOL sendCore = (IsMaster(device) && device->coreEvents);
|
||||||
|
|
||||||
if (event->type != ET_ButtonPress &&
|
if (event->type != ET_ButtonPress &&
|
||||||
event->type != ET_KeyPress)
|
event->type != ET_KeyPress)
|
||||||
|
@ -3548,7 +3555,7 @@ DeliverFocusedEvent(DeviceIntPtr keybd, InternalEvent *event, WindowPtr window)
|
||||||
{
|
{
|
||||||
DeviceIntPtr ptr;
|
DeviceIntPtr ptr;
|
||||||
WindowPtr focus = keybd->focus->win;
|
WindowPtr focus = keybd->focus->win;
|
||||||
BOOL sendCore = (keybd->isMaster && keybd->coreEvents);
|
BOOL sendCore = (IsMaster(keybd) && keybd->coreEvents);
|
||||||
xEvent core;
|
xEvent core;
|
||||||
xEvent *xE = NULL, *xi2 = NULL;
|
xEvent *xE = NULL, *xi2 = NULL;
|
||||||
int count, rc;
|
int count, rc;
|
||||||
|
@ -3714,7 +3721,7 @@ DeliverGrabbedEvent(InternalEvent *event, DeviceIntPtr thisDev,
|
||||||
|
|
||||||
mask = grab->eventMask;
|
mask = grab->eventMask;
|
||||||
|
|
||||||
sendCore = (thisDev->isMaster && thisDev->coreEvents);
|
sendCore = (IsMaster(thisDev) && thisDev->coreEvents);
|
||||||
/* try core event */
|
/* try core event */
|
||||||
if (sendCore && grab->grabtype == GRABTYPE_CORE)
|
if (sendCore && grab->grabtype == GRABTYPE_CORE)
|
||||||
{
|
{
|
||||||
|
@ -4201,7 +4208,7 @@ DeviceEnterLeaveEvent(
|
||||||
if (BitIsOn(mouse->button->down, i))
|
if (BitIsOn(mouse->button->down, i))
|
||||||
SetBit(&event[1], i);
|
SetBit(&event[1], i);
|
||||||
|
|
||||||
kbd = (mouse->isMaster || mouse->u.master) ? GetPairedDevice(mouse) : NULL;
|
kbd = (IsMaster(mouse) || mouse->u.master) ? GetPairedDevice(mouse) : NULL;
|
||||||
if (kbd && kbd->key)
|
if (kbd && kbd->key)
|
||||||
{
|
{
|
||||||
event->mods.base_mods = kbd->key->xkbInfo->state.base_mods;
|
event->mods.base_mods = kbd->key->xkbInfo->state.base_mods;
|
||||||
|
@ -5583,7 +5590,7 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events)
|
||||||
Bool
|
Bool
|
||||||
SetClientPointer(ClientPtr client, ClientPtr setter, DeviceIntPtr device)
|
SetClientPointer(ClientPtr client, ClientPtr setter, DeviceIntPtr device)
|
||||||
{
|
{
|
||||||
if (!device->isMaster)
|
if (!IsMaster(device))
|
||||||
{
|
{
|
||||||
ErrorF("[dix] Need master device for ClientPointer. This is a bug.\n");
|
ErrorF("[dix] Need master device for ClientPointer. This is a bug.\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -5627,7 +5634,7 @@ PickPointer(ClientPtr client)
|
||||||
DeviceIntPtr it = inputInfo.devices;
|
DeviceIntPtr it = inputInfo.devices;
|
||||||
while (it)
|
while (it)
|
||||||
{
|
{
|
||||||
if (it->isMaster && it->spriteInfo->spriteOwner)
|
if (IsMaster(it) && it->spriteInfo->spriteOwner)
|
||||||
{
|
{
|
||||||
client->clientPtr = it;
|
client->clientPtr = it;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -325,7 +325,7 @@ AllocateMotionHistory(DeviceIntPtr pDev)
|
||||||
* potential valuators, plus the respective range of the valuators.
|
* potential valuators, plus the respective range of the valuators.
|
||||||
* 3 * INT32 for (min_val, max_val, curr_val))
|
* 3 * INT32 for (min_val, max_val, curr_val))
|
||||||
*/
|
*/
|
||||||
if (pDev->isMaster)
|
if (IsMaster(pDev))
|
||||||
size = sizeof(INT32) * 3 * MAX_VALUATORS;
|
size = sizeof(INT32) * 3 * MAX_VALUATORS;
|
||||||
else
|
else
|
||||||
size = sizeof(INT32) * pDev->valuator->numAxes;
|
size = sizeof(INT32) * pDev->valuator->numAxes;
|
||||||
|
@ -369,7 +369,7 @@ GetMotionHistory(DeviceIntPtr pDev, xTimecoord **buff, unsigned long start,
|
||||||
if (core && !pScreen)
|
if (core && !pScreen)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (pDev->isMaster)
|
if (IsMaster(pDev))
|
||||||
size = (sizeof(INT32) * 3 * MAX_VALUATORS) + sizeof(Time);
|
size = (sizeof(INT32) * 3 * MAX_VALUATORS) + sizeof(Time);
|
||||||
else
|
else
|
||||||
size = (sizeof(INT32) * pDev->valuator->numAxes) + sizeof(Time);
|
size = (sizeof(INT32) * pDev->valuator->numAxes) + sizeof(Time);
|
||||||
|
@ -421,7 +421,7 @@ GetMotionHistory(DeviceIntPtr pDev, xTimecoord **buff, unsigned long start,
|
||||||
coord = rescaleValuatorAxis(coord, &from, to, pScreen->height);
|
coord = rescaleValuatorAxis(coord, &from, to, pScreen->height);
|
||||||
memcpy(corebuf, &coord, sizeof(INT16));
|
memcpy(corebuf, &coord, sizeof(INT16));
|
||||||
|
|
||||||
} else if (pDev->isMaster)
|
} else if (IsMaster(pDev))
|
||||||
{
|
{
|
||||||
memcpy(obuff, ibuff, sizeof(Time)); /* copy timestamp */
|
memcpy(obuff, ibuff, sizeof(Time)); /* copy timestamp */
|
||||||
|
|
||||||
|
@ -497,7 +497,7 @@ updateMotionHistory(DeviceIntPtr pDev, CARD32 ms, int first_valuator,
|
||||||
return;
|
return;
|
||||||
|
|
||||||
v = pDev->valuator;
|
v = pDev->valuator;
|
||||||
if (pDev->isMaster)
|
if (IsMaster(pDev))
|
||||||
{
|
{
|
||||||
buff += ((sizeof(INT32) * 3 * MAX_VALUATORS) + sizeof(CARD32)) *
|
buff += ((sizeof(INT32) * 3 * MAX_VALUATORS) + sizeof(CARD32)) *
|
||||||
v->last_motion;
|
v->last_motion;
|
||||||
|
|
|
@ -268,9 +268,9 @@ change_modmap(ClientPtr client, DeviceIntPtr dev, KeyCode *modkeymap,
|
||||||
do_modmap_change(client, dev, modmap);
|
do_modmap_change(client, dev, modmap);
|
||||||
|
|
||||||
/* Change any attached masters/slaves. */
|
/* Change any attached masters/slaves. */
|
||||||
if (dev->isMaster) {
|
if (IsMaster(dev)) {
|
||||||
for (tmp = inputInfo.devices; tmp; tmp = tmp->next) {
|
for (tmp = inputInfo.devices; tmp; tmp = tmp->next) {
|
||||||
if (!tmp->isMaster && tmp->u.master == dev)
|
if (!IsMaster(tmp) && tmp->u.master == dev)
|
||||||
if (check_modmap_change_slave(client, dev, tmp, modmap))
|
if (check_modmap_change_slave(client, dev, tmp, modmap))
|
||||||
do_modmap_change(client, tmp, modmap);
|
do_modmap_change(client, tmp, modmap);
|
||||||
}
|
}
|
||||||
|
|
|
@ -323,7 +323,7 @@ xf86ActivateDevice(LocalDevicePtr local)
|
||||||
local->dev = dev;
|
local->dev = dev;
|
||||||
|
|
||||||
dev->coreEvents = local->flags & XI86_ALWAYS_CORE;
|
dev->coreEvents = local->flags & XI86_ALWAYS_CORE;
|
||||||
dev->isMaster = FALSE;
|
dev->type = SLAVE;
|
||||||
dev->spriteInfo->spriteOwner = FALSE;
|
dev->spriteInfo->spriteOwner = FALSE;
|
||||||
|
|
||||||
dev->deviceGrab.ActivateGrab = ActivateKeyboardGrab;
|
dev->deviceGrab.ActivateGrab = ActivateKeyboardGrab;
|
||||||
|
@ -664,7 +664,7 @@ DeleteInputDeviceRequest(DeviceIntPtr pDev)
|
||||||
InputDriverPtr drv = NULL;
|
InputDriverPtr drv = NULL;
|
||||||
IDevRec *idev = NULL;
|
IDevRec *idev = NULL;
|
||||||
IDevPtr *it;
|
IDevPtr *it;
|
||||||
Bool isMaster = pDev->isMaster;
|
Bool isMaster = IsMaster(pDev);
|
||||||
|
|
||||||
if (pInfo) /* need to get these before RemoveDevice */
|
if (pInfo) /* need to get these before RemoveDevice */
|
||||||
{
|
{
|
||||||
|
|
|
@ -315,7 +315,7 @@ xf86CursorSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs,
|
||||||
/* only update for VCP, otherwise we get cursor jumps when removing a
|
/* only update for VCP, otherwise we get cursor jumps when removing a
|
||||||
sprite. The second cursor is never HW rendered anyway. */
|
sprite. The second cursor is never HW rendered anyway. */
|
||||||
if (pDev == inputInfo.pointer ||
|
if (pDev == inputInfo.pointer ||
|
||||||
(!pDev->isMaster && pDev->u.master == inputInfo.pointer))
|
(!IsMaster(pDev) && pDev->u.master == inputInfo.pointer))
|
||||||
{
|
{
|
||||||
ScreenPriv->CurrentCursor = pCurs;
|
ScreenPriv->CurrentCursor = pCurs;
|
||||||
ScreenPriv->x = x;
|
ScreenPriv->x = x;
|
||||||
|
@ -380,7 +380,7 @@ xf86CursorMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
|
||||||
/* only update coordinate state for first sprite, otherwise we get jumps
|
/* only update coordinate state for first sprite, otherwise we get jumps
|
||||||
when removing a sprite. The second sprite is never HW rendered anyway */
|
when removing a sprite. The second sprite is never HW rendered anyway */
|
||||||
if (pDev == inputInfo.pointer ||
|
if (pDev == inputInfo.pointer ||
|
||||||
(!pDev->isMaster && pDev->u.master == inputInfo.pointer))
|
(!IsMaster(pDev) && pDev->u.master == inputInfo.pointer))
|
||||||
{
|
{
|
||||||
ScreenPriv->x = x;
|
ScreenPriv->x = x;
|
||||||
ScreenPriv->y = y;
|
ScreenPriv->y = y;
|
||||||
|
|
|
@ -580,6 +580,7 @@ extern Bool DevHasCursor(DeviceIntPtr pDev);
|
||||||
extern Bool IsPointerDevice( DeviceIntPtr dev);
|
extern Bool IsPointerDevice( DeviceIntPtr dev);
|
||||||
extern Bool IsKeyboardDevice(DeviceIntPtr dev);
|
extern Bool IsKeyboardDevice(DeviceIntPtr dev);
|
||||||
extern Bool IsPointerEvent(InternalEvent *event);
|
extern Bool IsPointerEvent(InternalEvent *event);
|
||||||
|
extern Bool IsMaster(DeviceIntPtr dev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These are deprecated compatibility functions and will be removed soon!
|
* These are deprecated compatibility functions and will be removed soon!
|
||||||
|
|
|
@ -458,6 +458,11 @@ typedef struct _SpriteInfoRec {
|
||||||
pointer that owns the sprite. */
|
pointer that owns the sprite. */
|
||||||
} SpriteInfoRec, *SpriteInfoPtr;
|
} SpriteInfoRec, *SpriteInfoPtr;
|
||||||
|
|
||||||
|
/* device types */
|
||||||
|
#define MASTER_POINTER 1
|
||||||
|
#define MASTER_KEYBOARD 2
|
||||||
|
#define SLAVE 3
|
||||||
|
|
||||||
typedef struct _DeviceIntRec {
|
typedef struct _DeviceIntRec {
|
||||||
DeviceRec public;
|
DeviceRec public;
|
||||||
DeviceIntPtr next;
|
DeviceIntPtr next;
|
||||||
|
@ -470,7 +475,7 @@ typedef struct _DeviceIntRec {
|
||||||
Bool enabled; /* TRUE if ON returns Success */
|
Bool enabled; /* TRUE if ON returns Success */
|
||||||
Bool coreEvents; /* TRUE if device also sends core */
|
Bool coreEvents; /* TRUE if device also sends core */
|
||||||
GrabInfoRec deviceGrab; /* grab on the device */
|
GrabInfoRec deviceGrab; /* grab on the device */
|
||||||
Bool isMaster; /* TRUE if device is master */
|
int type; /* MASTER_POINTER, MASTER_KEYBOARD, SLAVE */
|
||||||
Atom xinput_type;
|
Atom xinput_type;
|
||||||
char *name;
|
char *name;
|
||||||
CARD8 id;
|
CARD8 id;
|
||||||
|
|
|
@ -359,7 +359,7 @@ mieqProcessDeviceEvent(DeviceIntPtr dev,
|
||||||
NewCurrentScreen (dev, DequeueScreen(dev), x, y);
|
NewCurrentScreen (dev, DequeueScreen(dev), x, y);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
master = (!dev->isMaster && dev->u.master) ? dev->u.master : NULL;
|
master = (!IsMaster(dev) && dev->u.master) ? dev->u.master : NULL;
|
||||||
|
|
||||||
if (master)
|
if (master)
|
||||||
CopyGetMasterEvent(master, dev, event, masterEvents);
|
CopyGetMasterEvent(master, dev, event, masterEvents);
|
||||||
|
@ -426,7 +426,7 @@ mieqProcessInputEvents(void)
|
||||||
pthread_mutex_unlock(&miEventQueueMutex);
|
pthread_mutex_unlock(&miEventQueueMutex);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
master = (!dev->isMaster && dev->u.master) ? dev->u.master : NULL;
|
master = (!IsMaster(dev) && dev->u.master) ? dev->u.master : NULL;
|
||||||
|
|
||||||
if (screenIsSaved == SCREEN_SAVER_ON)
|
if (screenIsSaved == SCREEN_SAVER_ON)
|
||||||
dixSaveScreens (serverClient, SCREEN_SAVER_OFF, ScreenSaverReset);
|
dixSaveScreens (serverClient, SCREEN_SAVER_OFF, ScreenSaverReset);
|
||||||
|
|
|
@ -51,7 +51,7 @@ static int miPointerPrivKeyIndex;
|
||||||
static DevPrivateKey miPointerPrivKey = &miPointerPrivKeyIndex;
|
static DevPrivateKey miPointerPrivKey = &miPointerPrivKeyIndex;
|
||||||
|
|
||||||
#define MIPOINTER(dev) \
|
#define MIPOINTER(dev) \
|
||||||
((DevHasCursor((dev)) || (!dev->isMaster && !dev->u.master)) ? \
|
((DevHasCursor((dev)) || (!IsMaster(isMaster) && !dev->u.master)) ? \
|
||||||
(miPointerPtr)dixLookupPrivate(&(dev)->devPrivates, miPointerPrivKey): \
|
(miPointerPtr)dixLookupPrivate(&(dev)->devPrivates, miPointerPrivKey): \
|
||||||
(miPointerPtr)dixLookupPrivate(&(dev)->u.master->devPrivates, miPointerPrivKey))
|
(miPointerPtr)dixLookupPrivate(&(dev)->u.master->devPrivates, miPointerPrivKey))
|
||||||
|
|
||||||
|
@ -186,8 +186,8 @@ miPointerDisplayCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
|
||||||
miPointerPtr pPointer;
|
miPointerPtr pPointer;
|
||||||
|
|
||||||
/* return for keyboards */
|
/* return for keyboards */
|
||||||
if ((pDev->isMaster && !DevHasCursor(pDev)) ||
|
if ((IsMaster(pDev) && !DevHasCursor(pDev)) ||
|
||||||
(!pDev->isMaster && pDev->u.master && !DevHasCursor(pDev->u.master)))
|
(!IsMaster(pDev) && pDev->u.master && !DevHasCursor(pDev->u.master)))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
pPointer = MIPOINTER(pDev);
|
pPointer = MIPOINTER(pDev);
|
||||||
|
@ -286,7 +286,7 @@ miPointerDeviceCleanup(DeviceIntPtr pDev, ScreenPtr pScreen)
|
||||||
{
|
{
|
||||||
SetupScreen(pScreen);
|
SetupScreen(pScreen);
|
||||||
|
|
||||||
if (!pDev->isMaster && pDev->u.master)
|
if (!IsMaster(pDev) && pDev->u.master)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
(*pScreenPriv->spriteFuncs->DeviceCursorCleanup)(pDev, pScreen);
|
(*pScreenPriv->spriteFuncs->DeviceCursorCleanup)(pDev, pScreen);
|
||||||
|
@ -474,7 +474,7 @@ miPointerMoved (DeviceIntPtr pDev, ScreenPtr pScreen,
|
||||||
* VCP, as this may cause a non-HW rendered cursor to be rendered during
|
* VCP, as this may cause a non-HW rendered cursor to be rendered during
|
||||||
* SIGIO. This again leads to allocs during SIGIO which leads to SIGABRT.
|
* SIGIO. This again leads to allocs during SIGIO which leads to SIGABRT.
|
||||||
*/
|
*/
|
||||||
if ((pDev == inputInfo.pointer || (!pDev->isMaster && pDev->u.master == inputInfo.pointer))
|
if ((pDev == inputInfo.pointer || (!IsMaster(pDev) && pDev->u.master == inputInfo.pointer))
|
||||||
&& !pScreenPriv->waitForUpdate && pScreen == pPointer->pSpriteScreen)
|
&& !pScreenPriv->waitForUpdate && pScreen == pPointer->pSpriteScreen)
|
||||||
{
|
{
|
||||||
pPointer->devx = x;
|
pPointer->devx = x;
|
||||||
|
|
|
@ -764,7 +764,7 @@ miSpriteRealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
|
||||||
miCursorInfoPtr pCursorInfo;
|
miCursorInfoPtr pCursorInfo;
|
||||||
|
|
||||||
pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey);
|
pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey);
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
if (!IsMaster(pDev) && !pDev->u.master)
|
||||||
{
|
{
|
||||||
ErrorF("[mi] miSpriteRealizeCursor called for floating device.\n");
|
ErrorF("[mi] miSpriteRealizeCursor called for floating device.\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -795,7 +795,7 @@ miSpriteSetCursor (DeviceIntPtr pDev, ScreenPtr pScreen,
|
||||||
|
|
||||||
pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey);
|
pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey);
|
||||||
|
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
if (!IsMaster(pDev) && !pDev->u.master)
|
||||||
{
|
{
|
||||||
ErrorF("[mi] miSpriteSetCursor called for floating device.\n");
|
ErrorF("[mi] miSpriteSetCursor called for floating device.\n");
|
||||||
return;
|
return;
|
||||||
|
@ -912,7 +912,7 @@ miSpriteMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
|
||||||
CursorPtr pCursor;
|
CursorPtr pCursor;
|
||||||
|
|
||||||
pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey);
|
pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey);
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
if (!IsMaster(pDev) && !pDev->u.master)
|
||||||
{
|
{
|
||||||
ErrorF("[mi] miSpriteMoveCursor called for floating device.\n");
|
ErrorF("[mi] miSpriteMoveCursor called for floating device.\n");
|
||||||
return;
|
return;
|
||||||
|
@ -980,7 +980,7 @@ miSpriteRemoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen)
|
||||||
miCursorInfoPtr pCursorInfo;
|
miCursorInfoPtr pCursorInfo;
|
||||||
|
|
||||||
|
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
if (!IsMaster(pDev) && !pDev->u.master)
|
||||||
{
|
{
|
||||||
ErrorF("[mi] miSpriteRemoveCursor called for floating device.\n");
|
ErrorF("[mi] miSpriteRemoveCursor called for floating device.\n");
|
||||||
return;
|
return;
|
||||||
|
@ -1020,7 +1020,7 @@ miSpriteSaveUnderCursor(DeviceIntPtr pDev, ScreenPtr pScreen)
|
||||||
CursorPtr pCursor;
|
CursorPtr pCursor;
|
||||||
miCursorInfoPtr pCursorInfo;
|
miCursorInfoPtr pCursorInfo;
|
||||||
|
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
if (!IsMaster(pDev) && !pDev->u.master)
|
||||||
{
|
{
|
||||||
ErrorF("[mi] miSpriteSaveUnderCursor called for floating device.\n");
|
ErrorF("[mi] miSpriteSaveUnderCursor called for floating device.\n");
|
||||||
return;
|
return;
|
||||||
|
@ -1063,7 +1063,7 @@ miSpriteRestoreCursor (DeviceIntPtr pDev, ScreenPtr pScreen)
|
||||||
CursorPtr pCursor;
|
CursorPtr pCursor;
|
||||||
miCursorInfoPtr pCursorInfo;
|
miCursorInfoPtr pCursorInfo;
|
||||||
|
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
if (!IsMaster(pDev) && !pDev->u.master)
|
||||||
{
|
{
|
||||||
ErrorF("[mi] miSpriteRestoreCursor called for floating device.\n");
|
ErrorF("[mi] miSpriteRestoreCursor called for floating device.\n");
|
||||||
return;
|
return;
|
||||||
|
@ -1107,7 +1107,7 @@ miSpriteComputeSaved (DeviceIntPtr pDev, ScreenPtr pScreen)
|
||||||
CursorPtr pCursor;
|
CursorPtr pCursor;
|
||||||
miCursorInfoPtr pCursorInfo;
|
miCursorInfoPtr pCursorInfo;
|
||||||
|
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
if (!IsMaster(pDev) && !pDev->u.master)
|
||||||
{
|
{
|
||||||
ErrorF("[mi] miSpriteComputeSaved called for floating device.\n");
|
ErrorF("[mi] miSpriteComputeSaved called for floating device.\n");
|
||||||
return;
|
return;
|
||||||
|
|
32
xkb/xkb.c
32
xkb/xkb.c
|
@ -521,7 +521,7 @@ ProcXkbBell(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if ((other != dev) && other->key && !other->isMaster && (other->u.master == dev))
|
if ((other != dev) && other->key && !IsMaster(other) && (other->u.master == dev))
|
||||||
{
|
{
|
||||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixBellAccess);
|
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixBellAccess);
|
||||||
if (rc == Success)
|
if (rc == Success)
|
||||||
|
@ -604,7 +604,7 @@ ProcXkbLatchLockState(ClientPtr client)
|
||||||
status = Success;
|
status = Success;
|
||||||
|
|
||||||
for (tmpd = inputInfo.devices; tmpd; tmpd = tmpd->next) {
|
for (tmpd = inputInfo.devices; tmpd; tmpd = tmpd->next) {
|
||||||
if ((tmpd == dev) || (!tmpd->isMaster && tmpd->u.master == dev)) {
|
if ((tmpd == dev) || (!IsMaster(tmpd) && tmpd->u.master == dev)) {
|
||||||
if (!tmpd->key || !tmpd->key->xkbInfo)
|
if (!tmpd->key || !tmpd->key->xkbInfo)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -746,7 +746,7 @@ ProcXkbSetControls(ClientPtr client)
|
||||||
for (tmpd = inputInfo.devices; tmpd; tmpd = tmpd->next) {
|
for (tmpd = inputInfo.devices; tmpd; tmpd = tmpd->next) {
|
||||||
if (!tmpd->key || !tmpd->key->xkbInfo)
|
if (!tmpd->key || !tmpd->key->xkbInfo)
|
||||||
continue;
|
continue;
|
||||||
if ((tmpd == dev) || (!tmpd->isMaster && tmpd->u.master == dev)) {
|
if ((tmpd == dev) || (!IsMaster(tmpd) && tmpd->u.master == dev)) {
|
||||||
xkbi = tmpd->key->xkbInfo;
|
xkbi = tmpd->key->xkbInfo;
|
||||||
ctrl = xkbi->desc->ctrls;
|
ctrl = xkbi->desc->ctrls;
|
||||||
new = *ctrl;
|
new = *ctrl;
|
||||||
|
@ -2556,7 +2556,7 @@ ProcXkbSetMap(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if ((other != dev) && other->key && !other->isMaster && (other->u.master == dev))
|
if ((other != dev) && other->key && !IsMaster(other) && (other->u.master == dev))
|
||||||
{
|
{
|
||||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
||||||
if (rc == Success)
|
if (rc == Success)
|
||||||
|
@ -2579,7 +2579,7 @@ ProcXkbSetMap(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if ((other != dev) && other->key && !other->isMaster && (other->u.master == dev))
|
if ((other != dev) && other->key && !IsMaster(other) && (other->u.master == dev))
|
||||||
{
|
{
|
||||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
||||||
if (rc == Success)
|
if (rc == Success)
|
||||||
|
@ -2886,7 +2886,7 @@ ProcXkbSetCompatMap(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if ((other != dev) && other->key && !other->isMaster && (other->u.master == dev))
|
if ((other != dev) && other->key && !IsMaster(other) && (other->u.master == dev))
|
||||||
{
|
{
|
||||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
||||||
if (rc == Success)
|
if (rc == Success)
|
||||||
|
@ -2909,7 +2909,7 @@ ProcXkbSetCompatMap(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if ((other != dev) && other->key && !other->isMaster && (other->u.master == dev))
|
if ((other != dev) && other->key && !IsMaster(other) && (other->u.master == dev))
|
||||||
{
|
{
|
||||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
||||||
if (rc == Success)
|
if (rc == Success)
|
||||||
|
@ -3164,7 +3164,7 @@ ProcXkbSetIndicatorMap(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if ((other != dev) && other->key && !other->isMaster && (other->u.master == dev))
|
if ((other != dev) && other->key && !IsMaster(other) && (other->u.master == dev))
|
||||||
{
|
{
|
||||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixSetAttrAccess);
|
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixSetAttrAccess);
|
||||||
if (rc == Success)
|
if (rc == Success)
|
||||||
|
@ -3432,7 +3432,7 @@ ProcXkbSetNamedIndicator(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if ((other != dev) && !other->isMaster && (other->u.master == dev) &&
|
if ((other != dev) && !IsMaster(other) && (other->u.master == dev) &&
|
||||||
(XaceHook(XACE_DEVICE_ACCESS, client, other, DixSetAttrAccess) == Success))
|
(XaceHook(XACE_DEVICE_ACCESS, client, other, DixSetAttrAccess) == Success))
|
||||||
{
|
{
|
||||||
rc = _XkbCreateIndicatorMap(other, stuff->indicator,
|
rc = _XkbCreateIndicatorMap(other, stuff->indicator,
|
||||||
|
@ -3455,7 +3455,7 @@ ProcXkbSetNamedIndicator(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if ((other != dev) && !other->isMaster && (other->u.master == dev) &&
|
if ((other != dev) && !IsMaster(other) && (other->u.master == dev) &&
|
||||||
(XaceHook(XACE_DEVICE_ACCESS, client, other, DixSetAttrAccess) == Success))
|
(XaceHook(XACE_DEVICE_ACCESS, client, other, DixSetAttrAccess) == Success))
|
||||||
{
|
{
|
||||||
_XkbSetNamedIndicator(client, other, stuff);
|
_XkbSetNamedIndicator(client, other, stuff);
|
||||||
|
@ -4245,7 +4245,7 @@ ProcXkbSetNames(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if ((other != dev) && other->key && !other->isMaster && (other->u.master == dev))
|
if ((other != dev) && other->key && !IsMaster(other) && (other->u.master == dev))
|
||||||
{
|
{
|
||||||
|
|
||||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
||||||
|
@ -4270,7 +4270,7 @@ ProcXkbSetNames(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if ((other != dev) && other->key && !other->isMaster && (other->u.master == dev))
|
if ((other != dev) && other->key && !IsMaster(other) && (other->u.master == dev))
|
||||||
{
|
{
|
||||||
|
|
||||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
||||||
|
@ -5321,7 +5321,7 @@ ProcXkbSetGeometry(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if ((other != dev) && other->key && !other->isMaster && (other->u.master == dev))
|
if ((other != dev) && other->key && !IsMaster(other) && (other->u.master == dev))
|
||||||
{
|
{
|
||||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
rc = XaceHook(XACE_DEVICE_ACCESS, client, other, DixManageAccess);
|
||||||
if (rc == Success)
|
if (rc == Success)
|
||||||
|
@ -5835,7 +5835,7 @@ ProcXkbGetKbdByName(ClientPtr client)
|
||||||
xkb->ctrls->num_groups= nTG;
|
xkb->ctrls->num_groups= nTG;
|
||||||
|
|
||||||
for (tmpd = inputInfo.devices; tmpd; tmpd = tmpd->next) {
|
for (tmpd = inputInfo.devices; tmpd; tmpd = tmpd->next) {
|
||||||
if ((tmpd == dev) || (!tmpd->isMaster && tmpd->u.master == dev)) {
|
if ((tmpd == dev) || (!IsMaster(tmpd) && tmpd->u.master == dev)) {
|
||||||
if (tmpd != dev)
|
if (tmpd != dev)
|
||||||
XkbCopyDeviceKeymap(tmpd, dev);
|
XkbCopyDeviceKeymap(tmpd, dev);
|
||||||
|
|
||||||
|
@ -6499,7 +6499,7 @@ ProcXkbSetDeviceInfo(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if (((other != dev) && !other->isMaster && (other->u.master == dev)) &&
|
if (((other != dev) && !IsMaster(other) && (other->u.master == dev)) &&
|
||||||
((stuff->deviceSpec == XkbUseCoreKbd && other->key) ||
|
((stuff->deviceSpec == XkbUseCoreKbd && other->key) ||
|
||||||
(stuff->deviceSpec == XkbUseCorePtr && other->button)))
|
(stuff->deviceSpec == XkbUseCorePtr && other->button)))
|
||||||
{
|
{
|
||||||
|
@ -6524,7 +6524,7 @@ ProcXkbSetDeviceInfo(ClientPtr client)
|
||||||
DeviceIntPtr other;
|
DeviceIntPtr other;
|
||||||
for (other = inputInfo.devices; other; other = other->next)
|
for (other = inputInfo.devices; other; other = other->next)
|
||||||
{
|
{
|
||||||
if (((other != dev) && !other->isMaster && (other->u.master == dev)) &&
|
if (((other != dev) && !IsMaster(other) && (other->u.master == dev)) &&
|
||||||
((stuff->deviceSpec == XkbUseCoreKbd && other->key) ||
|
((stuff->deviceSpec == XkbUseCoreKbd && other->key) ||
|
||||||
(stuff->deviceSpec == XkbUseCorePtr && other->button)))
|
(stuff->deviceSpec == XkbUseCorePtr && other->button)))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue