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;
|
||||
}
|
||||
|
||||
CallbackListPtr PropertyStateCallback;
|
||||
|
||||
static void
|
||||
deliverPropertyNotifyEvent(WindowPtr pWin, int state, PropertyPtr pProp)
|
||||
{
|
||||
xEvent event;
|
||||
PropertyStateRec rec = {
|
||||
.win = pWin,
|
||||
.prop = pProp,
|
||||
.state = state
|
||||
};
|
||||
UpdateCurrentTimeIf();
|
||||
event = (xEvent) {
|
||||
.u.property.window = pWin->drawable.id,
|
||||
|
@ -117,6 +124,8 @@ deliverPropertyNotifyEvent(WindowPtr pWin, int state, PropertyPtr pProp)
|
|||
.u.property.time = currentTime.milliseconds,
|
||||
};
|
||||
event.u.u.type = PropertyNotify;
|
||||
|
||||
CallCallbacks(&PropertyStateCallback, &rec);
|
||||
DeliverEvents(pWin, &event, 1, (WindowPtr) NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -51,6 +51,14 @@ SOFTWARE.
|
|||
|
||||
typedef struct _Property *PropertyPtr;
|
||||
|
||||
typedef struct _PropertyStateRec {
|
||||
WindowPtr win;
|
||||
PropertyPtr prop;
|
||||
int state;
|
||||
} PropertyStateRec;
|
||||
|
||||
extern CallbackListPtr PropertyStateCallback;
|
||||
|
||||
extern _X_EXPORT int dixLookupProperty(PropertyPtr * /*result */ ,
|
||||
WindowPtr /*pWin */ ,
|
||||
Atom /*proprty */ ,
|
||||
|
|
Loading…
Reference in New Issue
Block a user