Hi,
> The question now is: How can we communicate the fact that there is a
> second set of decoration properly to other plugins so that window
> damaging and transformation are aware of the glow?
> >From my understanding, the member "output" of the CompWindow
structure
> is supposed to do exactly that. But its contents get overwritten by the
> decoration plugin on every window state change and window
> activation/deactivation, so our plugin can't use it (and the function
> setWindowFrameExtents) directly because the changes aren't persistent.
After some more research, I'd like to add a comment:
As w->output really seems to be the struct responsible for what I'd like
to do, I have a proposal for solving that problem:
- Add a wrappable notify function, called from inside
setWindowFrameExtents - the prototype could look that way:
void windowFrameUpdateNotify (CompWindow *w, Bool inputChanged, Bool
outputChanged);
- Plugins which want to manipulate w->input or w->output then can hook
(AKA wrap) into this notify function and can adjust the structs to their
needs.
- If the plugins only are allowed to enlarge w->output and not to shrink
it, this approach is even plugin load order independant.
Questions/Remarks/Comments?
Regards,
Danny