mirror of
https://github.com/X11Libre/xserver.git
synced 2026-10-26 01:59:57 +00:00
Merge branch 'master' into mpx
Conflicts: XTrap/xtrapddmi.c Xext/security.c Xext/xprint.c Xext/xtest.c Xext/xvdisp.c Xi/exevents.c Xi/grabdevb.c Xi/grabdevk.c Xi/opendev.c Xi/ungrdev.c Xi/ungrdevb.c Xi/ungrdevk.c dix/cursor.c dix/devices.c dix/dixutils.c dix/events.c dix/getevents.c dix/main.c dix/window.c hw/xfree86/ramdac/xf86Cursor.c include/dix.h include/input.h include/inputstr.h mi/midispcur.c mi/miinitext.c mi/misprite.c render/animcur.c xfixes/cursor.c xkb/xkbAccessX.c
This commit is contained in:
commit
8da83836b6
718 changed files with 11577 additions and 33702 deletions
|
|
@ -68,12 +68,12 @@ SOFTWARE.
|
|||
#include "region.h"
|
||||
#include "exevents.h"
|
||||
#include "extnsionst.h"
|
||||
#include "extinit.h" /* LookupDeviceIntRec */
|
||||
#include "exglobals.h"
|
||||
#include "dixevents.h" /* DeliverFocusedEvent */
|
||||
#include "dixgrabs.h" /* CreateGrab() */
|
||||
#include "scrnintstr.h"
|
||||
#include "listdev.h" /* for CopySwapXXXClass */
|
||||
#include "xace.h"
|
||||
|
||||
#ifdef XKB
|
||||
#include <X11/extensions/XKBproto.h>
|
||||
|
|
@ -144,7 +144,8 @@ CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master)
|
|||
dk = device->key;
|
||||
mk = master->key;
|
||||
|
||||
if (master->devPrivates[CoreDevicePrivatesIndex].ptr != device) {
|
||||
if (device != dixLookupPrivate(&master->devPrivates,
|
||||
CoreDevicePrivateKey)) {
|
||||
memcpy(mk->modifierMap, dk->modifierMap, MAP_LENGTH);
|
||||
|
||||
if (dk->maxKeysPerModifier)
|
||||
|
|
@ -189,7 +190,7 @@ CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master)
|
|||
}
|
||||
#endif
|
||||
|
||||
master->devPrivates[CoreDevicePrivatesIndex].ptr = device;
|
||||
dixSetPrivate(&master->devPrivates, CoreDevicePrivateKey, device);
|
||||
sendNotify = TRUE;
|
||||
} else if (lastMapNotifyDevice != master)
|
||||
sendNotify = TRUE;
|
||||
|
|
@ -695,7 +696,7 @@ ProcessOtherEvent(xEventPtr xE, DeviceIntPtr device, int count)
|
|||
(key == device->deviceGrab.activatingKey))
|
||||
deactivateDeviceGrab = TRUE;
|
||||
} else if (xE->u.u.type == DeviceButtonPress) {
|
||||
xE->u.u.detail = b->map[key];
|
||||
xE->u.u.detail = key;
|
||||
if (xE->u.u.detail == 0)
|
||||
return;
|
||||
if (!grab)
|
||||
|
|
@ -712,7 +713,7 @@ ProcessOtherEvent(xEventPtr xE, DeviceIntPtr device, int count)
|
|||
}
|
||||
|
||||
} else if (xE->u.u.type == DeviceButtonRelease) {
|
||||
xE->u.u.detail = b->map[key];
|
||||
xE->u.u.detail = key;
|
||||
if (xE->u.u.detail == 0)
|
||||
return;
|
||||
if (!b->state && device->deviceGrab.fromPassiveGrab)
|
||||
|
|
@ -970,6 +971,7 @@ GrabButton(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode,
|
|||
WindowPtr pWin, confineTo;
|
||||
CursorPtr cursor;
|
||||
GrabPtr grab;
|
||||
Mask access_mode = DixGrabAccess;
|
||||
int rc;
|
||||
|
||||
if ((this_device_mode != GrabModeSync) &&
|
||||
|
|
@ -990,25 +992,33 @@ GrabButton(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode,
|
|||
client->errorValue = ownerEvents;
|
||||
return BadValue;
|
||||
}
|
||||
rc = dixLookupWindow(&pWin, grabWindow, client, DixUnknownAccess);
|
||||
rc = dixLookupWindow(&pWin, grabWindow, client, DixSetAttrAccess);
|
||||
if (rc != Success)
|
||||
return rc;
|
||||
if (rconfineTo == None)
|
||||
confineTo = NullWindow;
|
||||
else {
|
||||
rc = dixLookupWindow(&confineTo, rconfineTo, client, DixUnknownAccess);
|
||||
rc = dixLookupWindow(&confineTo, rconfineTo, client, DixSetAttrAccess);
|
||||
if (rc != Success)
|
||||
return rc;
|
||||
}
|
||||
if (rcursor == None)
|
||||
cursor = NullCursor;
|
||||
else {
|
||||
cursor = (CursorPtr) LookupIDByType(rcursor, RT_CURSOR);
|
||||
if (!cursor) {
|
||||
rc = dixLookupResource((pointer *)&cursor, rcursor, RT_CURSOR,
|
||||
client, DixUseAccess);
|
||||
if (rc != Success)
|
||||
{
|
||||
client->errorValue = rcursor;
|
||||
return BadCursor;
|
||||
return (rc == BadValue) ? BadCursor : rc;
|
||||
}
|
||||
access_mode |= DixForceAccess;
|
||||
}
|
||||
if (this_device_mode == GrabModeSync || other_devices_mode == GrabModeSync)
|
||||
access_mode |= DixFreezeAccess;
|
||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, access_mode);
|
||||
if (rc != Success)
|
||||
return rc;
|
||||
|
||||
grab = CreateGrab(client->index, dev, pWin, eventMask,
|
||||
(Bool) ownerEvents, (Bool) this_device_mode,
|
||||
|
|
@ -1016,7 +1026,7 @@ GrabButton(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode,
|
|||
DeviceButtonPress, button, confineTo, cursor);
|
||||
if (!grab)
|
||||
return BadAlloc;
|
||||
return AddPassiveGrabToList(grab);
|
||||
return AddPassiveGrabToList(client, grab);
|
||||
}
|
||||
|
||||
int
|
||||
|
|
@ -1028,6 +1038,7 @@ GrabKey(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode,
|
|||
WindowPtr pWin;
|
||||
GrabPtr grab;
|
||||
KeyClassPtr k = dev->key;
|
||||
Mask access_mode = DixGrabAccess;
|
||||
int rc;
|
||||
|
||||
if (k == NULL)
|
||||
|
|
@ -1055,7 +1066,12 @@ GrabKey(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode,
|
|||
client->errorValue = ownerEvents;
|
||||
return BadValue;
|
||||
}
|
||||
rc = dixLookupWindow(&pWin, grabWindow, client, DixUnknownAccess);
|
||||
rc = dixLookupWindow(&pWin, grabWindow, client, DixSetAttrAccess);
|
||||
if (rc != Success)
|
||||
return rc;
|
||||
if (this_device_mode == GrabModeSync || other_devices_mode == GrabModeSync)
|
||||
access_mode |= DixFreezeAccess;
|
||||
rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, access_mode);
|
||||
if (rc != Success)
|
||||
return rc;
|
||||
|
||||
|
|
@ -1065,7 +1081,7 @@ GrabKey(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode,
|
|||
NullWindow, NullCursor);
|
||||
if (!grab)
|
||||
return BadAlloc;
|
||||
return AddPassiveGrabToList(grab);
|
||||
return AddPassiveGrabToList(client, grab);
|
||||
}
|
||||
|
||||
int
|
||||
|
|
@ -1296,7 +1312,7 @@ SendEvent(ClientPtr client, DeviceIntPtr d, Window dest, Bool propagate,
|
|||
if (!mask)
|
||||
break;
|
||||
}
|
||||
} else
|
||||
} else if (!XaceHook(XACE_SEND_ACCESS, client, NULL, pWin, ev, count))
|
||||
(void)(DeliverEventsToWindow(d, pWin, ev, count, mask, NullGrab, d->id));
|
||||
return Success;
|
||||
}
|
||||
|
|
@ -1560,7 +1576,8 @@ MaybeSendDeviceMotionNotifyHint(deviceKeyButtonPointer * pEvents, Mask mask)
|
|||
{
|
||||
DeviceIntPtr dev;
|
||||
|
||||
dev = LookupDeviceIntRec(pEvents->deviceid & DEVICE_BITS);
|
||||
dixLookupDevice(&dev, pEvents->deviceid & DEVICE_BITS, serverClient,
|
||||
DixReadAccess);
|
||||
if (!dev)
|
||||
return 0;
|
||||
|
||||
|
|
@ -1584,7 +1601,8 @@ CheckDeviceGrabAndHintWindow(WindowPtr pWin, int type,
|
|||
{
|
||||
DeviceIntPtr dev;
|
||||
|
||||
dev = LookupDeviceIntRec(xE->deviceid & DEVICE_BITS);
|
||||
dixLookupDevice(&dev, xE->deviceid & DEVICE_BITS, serverClient,
|
||||
DixReadAccess);
|
||||
if (!dev)
|
||||
return;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue