GUI systems
Alex Graveley
alex@digitalcommerce.com
Wed, 28 Jun 2000 04:11:31 -0400
> The point is that program A can signal program B by causing redraw
> events to be sent to B. Imagine sending them 1 per second for 0, 2 per
> second for 1, for example. This is a covert channel.
Assuming expose events must be generated only by the "window manager" and
then only when one window actually uncovers a portion of another window.
A covert channel is possible but there is no way to know
1) if Program B has a window open to receive the events, and
2) where on the screen(s) the window is in order to receive expose events.
and
3) whether or not the user will notice windows moving around without him
controlling it.
Still it is possible.
Another thought is to disallow the use of program-fired expose events, such
as with windows uncovering other windows. But rather to reserve the
expose/redraw event to be at the discrestion of the window system. To be
fired when the previous state (before the window was covered) needs to be
recalled because the cached copy kept by the window system has been
reclaimed or needs refreshing. This is somewhat like the Save Unders Window
attribute in X, instead Save Unders would be in use all the time for all
windows, and the redraw event would be fired only when the Save Unders
internal buffer becomes full (or after a reboot, but no one would know the
difference :).
I hope no one stones me for keeping this topic alive :)
-Alex