Remember drawable ID used to find damage target for use in events. Bug 5730.
Using Composite, window pixmaps are given names in the client resource namespace and yet may not have any XID recorded in the drawable structure. As such, we need to remember the XID used to lookup the pixmap in the resource database so that we can report the correct XID back to the client in damage events. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
3df22b293c
commit
286935c6f4
|
@ -51,7 +51,7 @@ DamageExtNotify (DamageExtPtr pDamageExt, BoxPtr pBoxes, int nBoxes)
|
|||
ev.type = DamageEventBase + XDamageNotify;
|
||||
ev.level = pDamageExt->level;
|
||||
ev.sequenceNumber = pClient->sequence;
|
||||
ev.drawable = pDrawable->id;
|
||||
ev.drawable = pDamageExt->drawable;
|
||||
ev.damage = pDamageExt->id;
|
||||
ev.timestamp = currentTime.milliseconds;
|
||||
ev.geometry.x = pDrawable->x;
|
||||
|
@ -205,6 +205,7 @@ ProcDamageCreate (ClientPtr client)
|
|||
if (!pDamageExt)
|
||||
return BadAlloc;
|
||||
pDamageExt->id = stuff->damage;
|
||||
pDamageExt->drawable = stuff->drawable;
|
||||
pDamageExt->pDrawable = pDrawable;
|
||||
pDamageExt->level = level;
|
||||
pDamageExt->pClient = client;
|
||||
|
|
|
@ -55,6 +55,7 @@ typedef struct _DamageExt {
|
|||
DamageReportLevel level;
|
||||
ClientPtr pClient;
|
||||
XID id;
|
||||
XID drawable;
|
||||
} DamageExtRec, *DamageExtPtr;
|
||||
|
||||
#define VERIFY_DAMAGEEXT(pDamageExt, rid, client, mode) { \
|
||||
|
|
Loading…
Reference in New Issue