Path: utzoo!utgpu!water!watmath!watdragon!jmsellens From: jmsellens@watdragon.waterloo.edu (John M. Sellens) Newsgroups: comp.windows.x Subject: Server screen blanking for dumb displays Message-ID: <6290@watdragon.waterloo.edu> Date: 8 Apr 88 03:12:31 GMT Distribution: comp Organization: U of Waterloo, Ontario Lines: 45 Some displays, for example the DEC qvss, can't turn off the video in hardware. So, contrary to the Xqvss man page insisting that it supports all the standard server features, no matter how you set the "v" flag to Xqvss, your screen won't blank. The situation was the same in X10, and I fixed it there, so I thought that I would offer my fix for X11 R2. In the screen saver routine in server/dix/window.c, it first tries to hardware screen save, by calling the device dependent routine. If that doesn't work, it tiles your screen, with changing colours if you have a colour screen, or with a grey pattern if you don't. This change causes it to tile your screen all black if you prefer blanking. So the effect is the same, it's just not as efficient. As the comment says, I'm not sure about the purity of this little code addition, but it seems to work. I'd be glad to receive a blessed version of the patch. John Sellens U of Waterloo jmsellens@dragon.waterloo.edu context diff of X11 R2 server/dix/window.c (pretty simple, eh?): *** window.c.orig Thu Apr 7 23:04:22 1988 --- window.c Thu Apr 7 21:38:32 1988 *************** *** 2859,2864 **** --- 2859,2874 ---- } else attributes[0] = None; + + if (ScreenSaverBlanking != DontPreferBlanking) { + /* device dependent blanking failed, but we prefer + to save by blanking the screen, so blank the screen + by painting it black. I'm not sure if this is + actually the correct way to do it, but it seems + to work. - John Sellens - jmsellens@math.waterloo.edu */ + attributes[0] = screenInfo.screen[i].blackPixel; + mask = CWBackPixel; + } pWin = savedScreenInfo[i].pWindow = /* We SHOULD check for an error value here XXX */