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.