Resizing the root window

Jeremy Huddleston jeremyhu at
Sat May 3 23:22:00 PDT 2008

I'm trying to figure out some issues with monitor hotplugging in  
Xquartz, and I think I've narrowed it down to the way we try to resize  
the root window and I was hoping to get some feedback on what would be  
"the right way" do do this.

We try changing the dimensions of the root window via:

pRoot = WindowTable[pScreen->myNum];
pScreen->ResizeWindow(pRoot, x - sx, y - sy, width, height, NULL);

I've spewed out some debugging that shows the following:

Calling: RootlessResizeWindow(pRoot, 0, 0, 1440, 1860, NULL)
pRoot->drawable now: 2720, 960
pRoot->clipList.extents now: 2720, 960
pRoot->borderClip.extents now: 2720, 960
pRoot->winSize.extents now: 2720, 960
pRoot->borderSize.extents now: 2720, 960

pScreen->ResizeWindow is RootlessResizeWindow which essentially just  
does miSlideAndSizeWindow via:

SCREEN_UNWRAP(pScreen, ResizeWindow);
pScreen->ResizeWindow(pWin, x, y, w, h, pSib);
SCREEN_WRAP(pScreen, ResizeWindow);

Breakpoint 1, RootlessResizeWindow (pWin=0x581370, x=0, y=0, w=1440,  
h=1860, pSib=0x0) at rootlessWindow.c:1369
(gdb) print pScreen->ResizeWindow
$1 = (ResizeWindowProcPtr) 0x4f85f <miSlideAndSizeWindow>

And in miSlideAndSizeWindow, we have:

     /* if this is a root window, can't be resized */
     if (!(pParent = pWin->parent))
	return ;

So it looks like this is intentional.  So... how should I be resizing  
the root window?

Thanks in advance,

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3040 bytes
Desc: not available
URL: <>

More information about the xorg mailing list