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 _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg