[PATCH] Xi: check all handlers before applying property changes.
Peter Hutterer
peter.hutterer at who-t.net
Thu Oct 9 23:01:00 PDT 2008
On Thu, Oct 09, 2008 at 03:42:50PM +0200, Simon Thum wrote:
> One non-ignoring handler is invoked at max. For this we have to
> differentiate the RC.
> When a handler is invoked, it may decide to call a new function which
> allows it to pass through to handlers AFTER itself. A logical complement
> would be the ability to register handlers at head and tail.
something like
--
RegisterHandler(myHandler, HEAD);
RegisterHandler(otherHandler, TAIL);
void myHandler(foo) {
CallNextHandler(); /* causes otherHandler to be called */
return PROP_HANDLED;
}
--
Where CallNextHandler calls the handler next in the queue.
Do I get that right?
If so, a few questions:
- A handler that registers at the head of the queue, assumes it is before
other handlers. Thus it has to be aware of other handlers in the first
place?
- Two handlers that place themselves at the head of the queue now both assume
they are called first?
- What if the handler order has to be different for each property?
- What reason would a handler have for registering at the tail, other than
that it doesn't care whether it is ever called or not?
At which point - what's the point of this handler anyway?
- if myHandler allows pass-through after changing state, what if otherHandler
returns an error code?
(I do have the feeling that I didn't quite understand you proposal)
Cheers,
Peter
More information about the xorg
mailing list