[comp.windows.x] save-under bug?

guido@cwi.nl (Guido van Rossum) (05/16/89)

I have an application (a hacked version of the stdwin bitmap editor)
which can create a huge window (an expanded view of the bitmap, where
each bit is blown up to size NxN) which is a subwindow of a much smaller
window (the viewport).  I am not using backing store, but I have
pull-down menus with save-unders.  When the bitmap window is very large
(although only a small size of it is visible, due to the clipping to the
parent), there is a noticeable delay when I open a menu (up to half a
minute).  This makes me think that the save-under code somehow saves the
entire window (even that part which is invisible!), rather than only the
part below the menu.  Could this be:

	- a server bug?
	- required by the protocol?
	- a figment of my imagination?
	- fixed in R4?
	- all of the above?

Oh yeah, this is X11R3 (MIT server and library) with few patches on a
VS2000 running Ultrix 2.2.  The application uses only Xlib, not Xt.
--
Guido van Rossum, Centre for Mathematics and Computer Science (CWI), Amsterdam
guido@cwi.nl or mcvax!guido or guido%cwi.nl@uunet.uu.net
"Repo man has all night, every night."

rws@EXPO.LCS.MIT.EDU (05/17/89)

    This makes me think that the save-under code somehow saves the
    entire window (even that part which is invisible!), rather than only the
    part below the menu.

It isn't directly saving the entire window, but I suspect your application is
repainting the entire window (and the server is saving the repaint).  In the
sample server, save-unders are implemented in the "device independent" layer as
a fallback option in case the device dependent layer doesn't provide them (of
course, none of the ddx layers provide real save-unders.  In this fallback,
backing store is enabled on the windows-to-be-obscured.  This causes Exposure
events to be generated for all obscured (including off-screen) portions of
the window.  In your case, that's a lot of real estate.  Unless your
application is very clever, it is responding to these exposures.  If you run
your program under a debugger, or under xscope, you should be able to verify
this.

	- a server bug?

It isn't a "bug" exactly, but it is a misfeature.

	- required by the protocol?

Definitely not.

	- a figment of my imagination?

Dunno, how long have you been up?

	- fixed in R4?

It's not on our hit list, although it is on our wish list.