This patch is a an optimization (cleanup) of the gtkviewport widget. The viewport widget has 3 windows: the main window (wigdet->window), a clipping window and a window which contains the child widget. The only window which needs to get events (expose, clicks...) is the main window. The 2 others almost never recieve any event, and when they do, they don't do anything. This patch explicitly tells the X server that these 2 windows don't care about events. A second optimization, is for expose events handling in the viewport widget. When the viewport recieved an expose event, it sent it to its child widget. This is useless. If the child widget is a NO_WINDOW it won't handle it, and if it is not a NO_WINDOW, X already did the job and all we have is a duplicated expose event for the child widget. As the compressed expose stuff is not (yet) in gtk, we will avoid a significant number of useless (unworthy) expose events. The patch is against 0.99.3 Patrice.