dix: Add a callback chain for window property state change
This will be used by in-server features that need to react to property changes. The first one will be _XWAYLAND_ALLOW_COMMITS. Signed-off-by: Adam Jackson <ajax@redhat.com> [Pekka: add commit message body] Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
parent
50bcea8be3
commit
8e3f9ce6c0
|
@ -105,10 +105,17 @@ dixLookupProperty(PropertyPtr *result, WindowPtr pWin, Atom propertyName,
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CallbackListPtr PropertyStateCallback;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
deliverPropertyNotifyEvent(WindowPtr pWin, int state, PropertyPtr pProp)
|
deliverPropertyNotifyEvent(WindowPtr pWin, int state, PropertyPtr pProp)
|
||||||
{
|
{
|
||||||
xEvent event;
|
xEvent event;
|
||||||
|
PropertyStateRec rec = {
|
||||||
|
.win = pWin,
|
||||||
|
.prop = pProp,
|
||||||
|
.state = state
|
||||||
|
};
|
||||||
UpdateCurrentTimeIf();
|
UpdateCurrentTimeIf();
|
||||||
event = (xEvent) {
|
event = (xEvent) {
|
||||||
.u.property.window = pWin->drawable.id,
|
.u.property.window = pWin->drawable.id,
|
||||||
|
@ -117,6 +124,8 @@ deliverPropertyNotifyEvent(WindowPtr pWin, int state, PropertyPtr pProp)
|
||||||
.u.property.time = currentTime.milliseconds,
|
.u.property.time = currentTime.milliseconds,
|
||||||
};
|
};
|
||||||
event.u.u.type = PropertyNotify;
|
event.u.u.type = PropertyNotify;
|
||||||
|
|
||||||
|
CallCallbacks(&PropertyStateCallback, &rec);
|
||||||
DeliverEvents(pWin, &event, 1, (WindowPtr) NULL);
|
DeliverEvents(pWin, &event, 1, (WindowPtr) NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,14 @@ SOFTWARE.
|
||||||
|
|
||||||
typedef struct _Property *PropertyPtr;
|
typedef struct _Property *PropertyPtr;
|
||||||
|
|
||||||
|
typedef struct _PropertyStateRec {
|
||||||
|
WindowPtr win;
|
||||||
|
PropertyPtr prop;
|
||||||
|
int state;
|
||||||
|
} PropertyStateRec;
|
||||||
|
|
||||||
|
extern CallbackListPtr PropertyStateCallback;
|
||||||
|
|
||||||
extern _X_EXPORT int dixLookupProperty(PropertyPtr * /*result */ ,
|
extern _X_EXPORT int dixLookupProperty(PropertyPtr * /*result */ ,
|
||||||
WindowPtr /*pWin */ ,
|
WindowPtr /*pWin */ ,
|
||||||
Atom /*proprty */ ,
|
Atom /*proprty */ ,
|
||||||
|
|
Loading…
Reference in New Issue