dix: DeliverEventsToWindow adjusted for MPX
mi: sprite debugging disabled
This commit is contained in:
parent
8c16f21d5d
commit
f52d53e060
36
Changelog
36
Changelog
|
@ -13,9 +13,10 @@ Xi: fix: accessing other->buttons for keyboard segfaulted the server
|
||||||
Files:
|
Files:
|
||||||
mi/misprite.c
|
mi/misprite.c
|
||||||
mi/mipointer.c
|
mi/mipointer.c
|
||||||
dix/events.c
|
dix/events.c
|
||||||
Xi/exevents.c
|
Xi/exevents.c
|
||||||
|
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
dix GetSpriteWindow() adjusted for MPX
|
dix GetSpriteWindow() adjusted for MPX
|
||||||
added device dependency for MPX to DoEnterLeaveEvents,
|
added device dependency for MPX to DoEnterLeaveEvents,
|
||||||
|
@ -23,11 +24,23 @@ dix GetSpriteWindow() adjusted for MPX
|
||||||
FixUpEventFromWindow.
|
FixUpEventFromWindow.
|
||||||
|
|
||||||
Files:
|
Files:
|
||||||
Xext/security.c
|
Xext/security.c
|
||||||
Xi/exevents.c
|
Xi/exevents.c
|
||||||
ddx/ddxFakeMtn.c
|
ddx/ddxFakeMtn.c
|
||||||
dix/events.c
|
dix/events.c
|
||||||
include/dix.h
|
include/dix.h
|
||||||
|
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
|
dix: DeliverEventsToWindow adjusted for MPX
|
||||||
|
|
||||||
|
mi: sprite debugging disabled
|
||||||
|
|
||||||
|
Files:
|
||||||
|
dix/events.c
|
||||||
|
Xi/exevents.c
|
||||||
|
mi/misprite.c
|
||||||
|
include/dix.h
|
||||||
|
|
||||||
|
|
||||||
== 21.11.06 ==
|
== 21.11.06 ==
|
||||||
|
@ -43,6 +56,7 @@ Files:
|
||||||
|
|
||||||
TAG: MPX_BEFORE_MIDC_API_BREAK
|
TAG: MPX_BEFORE_MIDC_API_BREAK
|
||||||
|
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
mi: added device ID to miSpriteCursorFuncRec functions
|
mi: added device ID to miSpriteCursorFuncRec functions
|
||||||
added MPX code to midispcur.c
|
added MPX code to midispcur.c
|
||||||
|
@ -55,6 +69,7 @@ Files:
|
||||||
|
|
||||||
BUG: Core pointer changes whenever MPX cursor changes shape.
|
BUG: Core pointer changes whenever MPX cursor changes shape.
|
||||||
|
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
mi: constrain MPX cursors to screen
|
mi: constrain MPX cursors to screen
|
||||||
|
|
||||||
|
@ -66,6 +81,7 @@ Files:
|
||||||
TAG: MPX_BEFORE_DIX_API_BREAK
|
TAG: MPX_BEFORE_DIX_API_BREAK
|
||||||
|
|
||||||
|
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
dix: moved sprite from static to be pointer of type SpritePtr
|
dix: moved sprite from static to be pointer of type SpritePtr
|
||||||
added SpriteRecs for MPX devices
|
added SpriteRecs for MPX devices
|
||||||
|
@ -89,6 +105,8 @@ Files:
|
||||||
xfixes/cursor.c
|
xfixes/cursor.c
|
||||||
mi/mieq.c
|
mi/mieq.c
|
||||||
|
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
dix: WindowsRestructured() calls CheckMotion() on all devices
|
dix: WindowsRestructured() calls CheckMotion() on all devices
|
||||||
|
|
||||||
mi: core pointer was checked twice in miSpriteReportDamage,
|
mi: core pointer was checked twice in miSpriteReportDamage,
|
||||||
|
@ -112,6 +130,7 @@ Files:
|
||||||
mi/misprite.c
|
mi/misprite.c
|
||||||
mi/mipointer.c
|
mi/mipointer.c
|
||||||
|
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
mi: added MPX to miSprite functions.
|
mi: added MPX to miSprite functions.
|
||||||
|
|
||||||
|
@ -149,6 +168,7 @@ Files:
|
||||||
hw/xfree86/ramdac/xf86Cursor.c
|
hw/xfree86/ramdac/xf86Cursor.c
|
||||||
hw/xfree86/rac/xf86RAC.c
|
hw/xfree86/rac/xf86RAC.c
|
||||||
|
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
mi:
|
mi:
|
||||||
added miCursorInfoRec to contain info of the MPX cursors.
|
added miCursorInfoRec to contain info of the MPX cursors.
|
||||||
|
@ -195,6 +215,7 @@ Files:
|
||||||
configure.ac
|
configure.ac
|
||||||
include/dix-config.h.in
|
include/dix-config.h.in
|
||||||
|
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
dix: added isMPdev field to _DeviceIntRec, is used in GetPointerEvents()
|
dix: added isMPdev field to _DeviceIntRec, is used in GetPointerEvents()
|
||||||
|
|
||||||
|
@ -210,6 +231,7 @@ Files:
|
||||||
include/inputstr.h
|
include/inputstr.h
|
||||||
mi/mieq.c
|
mi/mieq.c
|
||||||
|
|
||||||
|
____________________________________________________________
|
||||||
|
|
||||||
mieq: EQ processing handles MP devices
|
mieq: EQ processing handles MP devices
|
||||||
|
|
||||||
|
|
|
@ -394,7 +394,7 @@ DeviceFocusEvent(DeviceIntPtr dev, int type, int mode, int detail,
|
||||||
event.window = pWin->drawable.id;
|
event.window = pWin->drawable.id;
|
||||||
event.time = currentTime.milliseconds;
|
event.time = currentTime.milliseconds;
|
||||||
|
|
||||||
(void)DeliverEventsToWindow(pWin, (xEvent *) & event, 1,
|
(void)DeliverEventsToWindow(dev, pWin, (xEvent *) & event, 1,
|
||||||
DeviceFocusChangeMask, NullGrab, dev->id);
|
DeviceFocusChangeMask, NullGrab, dev->id);
|
||||||
|
|
||||||
if ((type == DeviceFocusIn) &&
|
if ((type == DeviceFocusIn) &&
|
||||||
|
@ -490,7 +490,7 @@ DeviceFocusEvent(DeviceIntPtr dev, int type, int mode, int detail,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
(void)DeliverEventsToWindow(pWin, (xEvent *) sev, evcount,
|
(void)DeliverEventsToWindow(dev, pWin, (xEvent *) sev, evcount,
|
||||||
DeviceStateNotifyMask, NullGrab, dev->id);
|
DeviceStateNotifyMask, NullGrab, dev->id);
|
||||||
xfree(sev);
|
xfree(sev);
|
||||||
}
|
}
|
||||||
|
@ -820,7 +820,7 @@ SendEvent(ClientPtr client, DeviceIntPtr d, Window dest, Bool propagate,
|
||||||
ev->u.u.type |= 0x80;
|
ev->u.u.type |= 0x80;
|
||||||
if (propagate) {
|
if (propagate) {
|
||||||
for (; pWin; pWin = pWin->parent) {
|
for (; pWin; pWin = pWin->parent) {
|
||||||
if (DeliverEventsToWindow(pWin, ev, count, mask, NullGrab, d->id))
|
if (DeliverEventsToWindow(d, pWin, ev, count, mask, NullGrab, d->id))
|
||||||
return Success;
|
return Success;
|
||||||
if (pWin == effectiveFocus)
|
if (pWin == effectiveFocus)
|
||||||
return Success;
|
return Success;
|
||||||
|
@ -830,7 +830,7 @@ SendEvent(ClientPtr client, DeviceIntPtr d, Window dest, Bool propagate,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
(void)(DeliverEventsToWindow(pWin, ev, count, mask, NullGrab, d->id));
|
(void)(DeliverEventsToWindow(d, pWin, ev, count, mask, NullGrab, d->id));
|
||||||
return Success;
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1229,7 +1229,7 @@ FindInterestedChildren(DeviceIntPtr dev, WindowPtr p1, Mask mask,
|
||||||
|
|
||||||
while (p1) {
|
while (p1) {
|
||||||
p2 = p1->firstChild;
|
p2 = p1->firstChild;
|
||||||
(void)DeliverEventsToWindow(p1, ev, count, mask, NullGrab, dev->id);
|
(void)DeliverEventsToWindow(dev, 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;
|
||||||
}
|
}
|
||||||
|
@ -1249,7 +1249,7 @@ SendEventToAllWindows(DeviceIntPtr dev, Mask mask, xEvent * ev, int count)
|
||||||
|
|
||||||
for (i = 0; i < screenInfo.numScreens; i++) {
|
for (i = 0; i < screenInfo.numScreens; i++) {
|
||||||
pWin = WindowTable[i];
|
pWin = WindowTable[i];
|
||||||
(void)DeliverEventsToWindow(pWin, ev, count, mask, NullGrab, dev->id);
|
(void)DeliverEventsToWindow(dev, 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);
|
||||||
}
|
}
|
||||||
|
|
44
dix/events.c
44
dix/events.c
|
@ -1673,8 +1673,8 @@ TryClientEvents (ClientPtr client, xEvent *pEvents, int count, Mask mask,
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
DeliverEventsToWindow(register WindowPtr pWin, xEvent *pEvents, int count,
|
DeliverEventsToWindow(DeviceIntPtr pDev, register WindowPtr pWin, xEvent
|
||||||
Mask filter, GrabPtr grab, int mskidx)
|
*pEvents, int count, Mask filter, GrabPtr grab, int mskidx)
|
||||||
{
|
{
|
||||||
int deliveries = 0, nondeliveries = 0;
|
int deliveries = 0, nondeliveries = 0;
|
||||||
int attempt;
|
int attempt;
|
||||||
|
@ -1736,7 +1736,7 @@ DeliverEventsToWindow(register WindowPtr pWin, xEvent *pEvents, int count,
|
||||||
{
|
{
|
||||||
GrabRec tempGrab;
|
GrabRec tempGrab;
|
||||||
|
|
||||||
tempGrab.device = inputInfo.pointer;
|
tempGrab.device = pDev;
|
||||||
tempGrab.resource = client->clientAsMask;
|
tempGrab.resource = client->clientAsMask;
|
||||||
tempGrab.window = pWin;
|
tempGrab.window = pWin;
|
||||||
tempGrab.ownerEvents = (deliveryMask & OwnerGrabButtonMask) ? TRUE : FALSE;
|
tempGrab.ownerEvents = (deliveryMask & OwnerGrabButtonMask) ? TRUE : FALSE;
|
||||||
|
@ -1745,11 +1745,11 @@ DeliverEventsToWindow(register WindowPtr pWin, xEvent *pEvents, int count,
|
||||||
tempGrab.pointerMode = GrabModeAsync;
|
tempGrab.pointerMode = GrabModeAsync;
|
||||||
tempGrab.confineTo = NullWindow;
|
tempGrab.confineTo = NullWindow;
|
||||||
tempGrab.cursor = NullCursor;
|
tempGrab.cursor = NullCursor;
|
||||||
(*inputInfo.pointer->ActivateGrab)(inputInfo.pointer, &tempGrab,
|
(*inputInfo.pointer->ActivateGrab)(pDev, &tempGrab,
|
||||||
currentTime, TRUE);
|
currentTime, TRUE);
|
||||||
}
|
}
|
||||||
else if ((type == MotionNotify) && deliveries)
|
else if ((type == MotionNotify) && deliveries)
|
||||||
inputInfo.pointer->valuator->motionHintWindow = pWin;
|
pDev->valuator->motionHintWindow = pWin;
|
||||||
#ifdef XINPUT
|
#ifdef XINPUT
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1911,7 +1911,7 @@ DeliverDeviceEvents(register WindowPtr pWin, register xEvent *xE, GrabPtr grab,
|
||||||
if (inputMasks && (inputMasks->inputEvents[mskidx] & filter))
|
if (inputMasks && (inputMasks->inputEvents[mskidx] & filter))
|
||||||
{
|
{
|
||||||
FixUpEventFromWindow(dev, xE, pWin, child, FALSE);
|
FixUpEventFromWindow(dev, xE, pWin, child, FALSE);
|
||||||
deliveries = DeliverEventsToWindow(pWin, xE, count, filter,
|
deliveries = DeliverEventsToWindow(dev, pWin, xE, count, filter,
|
||||||
grab, mskidx);
|
grab, mskidx);
|
||||||
if (deliveries > 0)
|
if (deliveries > 0)
|
||||||
return deliveries;
|
return deliveries;
|
||||||
|
@ -1936,7 +1936,7 @@ DeliverDeviceEvents(register WindowPtr pWin, register xEvent *xE, GrabPtr grab,
|
||||||
if ((wOtherEventMasks(pWin)|pWin->eventMask) & filter)
|
if ((wOtherEventMasks(pWin)|pWin->eventMask) & filter)
|
||||||
{
|
{
|
||||||
FixUpEventFromWindow(dev, xE, pWin, child, FALSE);
|
FixUpEventFromWindow(dev, xE, pWin, child, FALSE);
|
||||||
deliveries = DeliverEventsToWindow(pWin, xE, count, filter,
|
deliveries = DeliverEventsToWindow(dev, pWin, xE, count, filter,
|
||||||
grab, 0);
|
grab, 0);
|
||||||
if (deliveries > 0)
|
if (deliveries > 0)
|
||||||
return deliveries;
|
return deliveries;
|
||||||
|
@ -1971,20 +1971,20 @@ DeliverEvents(register WindowPtr pWin, register xEvent *xE, int count,
|
||||||
if ((filter & SubstructureNotifyMask) && (xE->u.u.type != CreateNotify))
|
if ((filter & SubstructureNotifyMask) && (xE->u.u.type != CreateNotify))
|
||||||
xE->u.destroyNotify.event = pWin->drawable.id;
|
xE->u.destroyNotify.event = pWin->drawable.id;
|
||||||
if (filter != StructureAndSubMask)
|
if (filter != StructureAndSubMask)
|
||||||
return DeliverEventsToWindow(pWin, xE, count, filter, NullGrab, 0);
|
return DeliverEventsToWindow(inputInfo.pointer, pWin, xE, count, filter, NullGrab, 0);
|
||||||
deliveries = DeliverEventsToWindow(pWin, xE, count, StructureNotifyMask,
|
deliveries = DeliverEventsToWindow(inputInfo.pointer, pWin, xE, count, StructureNotifyMask,
|
||||||
NullGrab, 0);
|
NullGrab, 0);
|
||||||
if (pWin->parent)
|
if (pWin->parent)
|
||||||
{
|
{
|
||||||
xE->u.destroyNotify.event = pWin->parent->drawable.id;
|
xE->u.destroyNotify.event = pWin->parent->drawable.id;
|
||||||
deliveries += DeliverEventsToWindow(pWin->parent, xE, count,
|
deliveries += DeliverEventsToWindow(inputInfo.pointer, pWin->parent, xE, count,
|
||||||
SubstructureNotifyMask, NullGrab,
|
SubstructureNotifyMask, NullGrab,
|
||||||
0);
|
0);
|
||||||
if (xE->u.u.type == ReparentNotify)
|
if (xE->u.u.type == ReparentNotify)
|
||||||
{
|
{
|
||||||
xE->u.destroyNotify.event = otherParent->drawable.id;
|
xE->u.destroyNotify.event = otherParent->drawable.id;
|
||||||
deliveries += DeliverEventsToWindow(otherParent, xE, count,
|
deliveries += DeliverEventsToWindow(inputInfo.pointer,
|
||||||
SubstructureNotifyMask,
|
otherParent, xE, count, SubstructureNotifyMask,
|
||||||
NullGrab, 0);
|
NullGrab, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2723,7 +2723,7 @@ DeliverFocusedEvent(DeviceIntPtr keybd, xEvent *xE, WindowPtr window, int count)
|
||||||
FixUpEventFromWindow(inputInfo.pointer, xE, focus, None, FALSE);
|
FixUpEventFromWindow(inputInfo.pointer, xE, focus, None, FALSE);
|
||||||
if (xE->u.u.type & EXTENSION_EVENT_BASE)
|
if (xE->u.u.type & EXTENSION_EVENT_BASE)
|
||||||
mskidx = keybd->id;
|
mskidx = keybd->id;
|
||||||
(void)DeliverEventsToWindow(focus, xE, count, filters[xE->u.u.type],
|
(void)DeliverEventsToWindow(keybd, focus, xE, count, filters[xE->u.u.type],
|
||||||
NullGrab, mskidx);
|
NullGrab, mskidx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3394,7 +3394,7 @@ EnterLeaveEvent(
|
||||||
(void)TryClientEvents(rClient(grab), &event, 1, mask,
|
(void)TryClientEvents(rClient(grab), &event, 1, mask,
|
||||||
filters[type], grab);
|
filters[type], grab);
|
||||||
else
|
else
|
||||||
(void)DeliverEventsToWindow(pWin, &event, 1, filters[type],
|
(void)DeliverEventsToWindow(pDev, pWin, &event, 1, filters[type],
|
||||||
NullGrab, 0);
|
NullGrab, 0);
|
||||||
}
|
}
|
||||||
if ((type == EnterNotify) && (mask & KeymapStateMask))
|
if ((type == EnterNotify) && (mask & KeymapStateMask))
|
||||||
|
@ -3416,7 +3416,7 @@ EnterLeaveEvent(
|
||||||
(void)TryClientEvents(rClient(grab), (xEvent *)&ke, 1, mask,
|
(void)TryClientEvents(rClient(grab), (xEvent *)&ke, 1, mask,
|
||||||
KeymapStateMask, grab);
|
KeymapStateMask, grab);
|
||||||
else
|
else
|
||||||
(void)DeliverEventsToWindow(pWin, (xEvent *)&ke, 1,
|
(void)DeliverEventsToWindow(pDev, pWin, (xEvent *)&ke, 1,
|
||||||
KeymapStateMask, NullGrab, 0);
|
KeymapStateMask, NullGrab, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3507,8 +3507,8 @@ FocusEvent(DeviceIntPtr dev, int type, int mode, int detail, register WindowPtr
|
||||||
event.u.u.type = type;
|
event.u.u.type = type;
|
||||||
event.u.u.detail = detail;
|
event.u.u.detail = detail;
|
||||||
event.u.focus.window = pWin->drawable.id;
|
event.u.focus.window = pWin->drawable.id;
|
||||||
(void)DeliverEventsToWindow(pWin, &event, 1, filters[type], NullGrab,
|
(void)DeliverEventsToWindow(dev, pWin, &event, 1, filters[type], NullGrab,
|
||||||
0);
|
0);
|
||||||
if ((type == FocusIn) &&
|
if ((type == FocusIn) &&
|
||||||
((pWin->eventMask | wOtherEventMasks(pWin)) & KeymapStateMask))
|
((pWin->eventMask | wOtherEventMasks(pWin)) & KeymapStateMask))
|
||||||
{
|
{
|
||||||
|
@ -3523,7 +3523,7 @@ FocusEvent(DeviceIntPtr dev, int type, int mode, int detail, register WindowPtr
|
||||||
#endif
|
#endif
|
||||||
memmove((char *)&ke.map[0], (char *)&dev->key->down[1], 31);
|
memmove((char *)&ke.map[0], (char *)&dev->key->down[1], 31);
|
||||||
ke.type = KeymapNotify;
|
ke.type = KeymapNotify;
|
||||||
(void)DeliverEventsToWindow(pWin, (xEvent *)&ke, 1,
|
(void)DeliverEventsToWindow(dev, pWin, (xEvent *)&ke, 1,
|
||||||
KeymapStateMask, NullGrab, 0);
|
KeymapStateMask, NullGrab, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4318,8 +4318,8 @@ ProcSendEvent(ClientPtr client)
|
||||||
{
|
{
|
||||||
for (;pWin; pWin = pWin->parent)
|
for (;pWin; pWin = pWin->parent)
|
||||||
{
|
{
|
||||||
if (DeliverEventsToWindow(pWin, &stuff->event, 1, stuff->eventMask,
|
if (DeliverEventsToWindow(inputInfo.pointer, pWin, &stuff->event,
|
||||||
NullGrab, 0))
|
1, stuff->eventMask, NullGrab, 0))
|
||||||
return Success;
|
return Success;
|
||||||
if (pWin == effectiveFocus)
|
if (pWin == effectiveFocus)
|
||||||
return Success;
|
return Success;
|
||||||
|
@ -4329,8 +4329,8 @@ ProcSendEvent(ClientPtr client)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
(void)DeliverEventsToWindow(pWin, &stuff->event, 1, stuff->eventMask,
|
(void)DeliverEventsToWindow(inputInfo.pointer, pWin, &stuff->event, 1,
|
||||||
NullGrab, 0);
|
stuff->eventMask, NullGrab, 0);
|
||||||
return Success;
|
return Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -570,6 +570,7 @@ extern void ReleaseActiveGrabs(
|
||||||
ClientPtr client);
|
ClientPtr client);
|
||||||
|
|
||||||
extern int DeliverEventsToWindow(
|
extern int DeliverEventsToWindow(
|
||||||
|
DeviceIntPtr /* pWin */,
|
||||||
WindowPtr /* pWin */,
|
WindowPtr /* pWin */,
|
||||||
xEventPtr /* pEvents */,
|
xEventPtr /* pEvents */,
|
||||||
int /* count */,
|
int /* count */,
|
||||||
|
|
|
@ -72,7 +72,7 @@ static miCursorInfoPtr DevToSprite(DeviceIntPtr pDev, ScreenPtr pScreen);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define SPRITE_DEBUG_ENABLE 1
|
#define SPRITE_DEBUG_ENABLE 0
|
||||||
#if SPRITE_DEBUG_ENABLE
|
#if SPRITE_DEBUG_ENABLE
|
||||||
#define SPRITE_DEBUG(x) ErrorF x
|
#define SPRITE_DEBUG(x) ErrorF x
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue