<div dir="ltr"><div style="font-size:12.8000001907349px"><font color="#000000">Dear All</font></div><div style="font-size:12.8000001907349px"><font color="#000000"><br></font></div><div style="font-size:12.8000001907349px"><font color="#000000">I try get screenshots for all opened applications, but i have problem with NameWindowPixmap. I shared my simple example application:<a href="http://pastebin.com/Qw8ZZ2i8" target="_blank">http://pastebin.com/Qw8ZZ2i8</a>.</font></div><div style="font-size:12.8000001907349px"><font color="#000000"><br></font></div><div style="font-size:12.8000001907349px"><font color="#000000">I make screenshots using method below</font></div><div style="font-size:12.8000001907349px"><font color="#000000"><br></font></div><div style="font-size:12.8000001907349px"><font color="#000000">QPixmap makeScreenshot(XID xid, Display *display){</font></div><div style="font-size:12.8000001907349px"><font color="#000000">    QPixmap qpxmp;</font></div><div style="font-size:12.8000001907349px"><font color="#000000">    XCompositeRedirectWindow (display, xid, CompositeRedirectAutomatic);</font></div><div style="font-size:12.8000001907349px"><font color="#000000">    XFlush(display);</font></div><div style="font-size:12.8000001907349px"><font color="#000000">    Pixmap pixmap = XCompositeNameWindowPixmap (display, xid);</font></div><div style="font-size:12.8000001907349px"><font color="#000000">    XSync(display, false);</font></div><div style="font-size:12.8000001907349px"><font color="#000000">    qpxmp = QPixmap::fromX11Pixmap(pixmap).copy();</font></div><div style="font-size:12.8000001907349px"><font color="#000000">    XFreePixmap (display, pixmap);</font></div><div style="font-size:12.8000001907349px"><font color="#000000">    XCompositeUnredirectWindow (display, xid, CompositeRedirectAutomatic);</font></div><div style="font-size:12.8000001907349px"><font color="#000000">    return qpxmp;</font></div><div style="font-size:12.8000001907349px"><font color="#000000">}</font></div><div style="font-size:12.8000001907349px"><font color="#000000"><br></font></div><div style="font-size:12.8000001907349px"><font color="#000000">Usually it works, but sometimes I face with problems: pixmap exists, but it wrong, it could be black, empty or corrupted image. This cases generates same log entries:</font></div><div style="font-size:12.8000001907349px"><font color="#000000">X Error: BadDrawable (invalid Pixmap or Window parameter) 9</font></div><div style="font-size:12.8000001907349px"><font color="#000000">  Extension:    139 (RENDER)</font></div><div style="font-size:12.8000001907349px"><font color="#000000">  Minor opcode: 4 (RenderCreatePicture)</font></div><div style="font-size:12.8000001907349px"><font color="#000000">  Resource id:  0x4a0006d</font></div><div style="font-size:12.8000001907349px"><font color="#000000">X Error: RenderBadPicture (invalid Picture parameter) 143</font></div><div style="font-size:12.8000001907349px"><font color="#000000">  Extension:    139 (RENDER)</font></div><div style="font-size:12.8000001907349px"><font color="#000000">  Minor opcode: 8 (RenderComposite)</font></div><div style="font-size:12.8000001907349px"><font color="#000000">  Resource id:  0x24001b4</font></div><div style="font-size:12.8000001907349px"><font color="#000000">X Error: RenderBadPicture (invalid Picture parameter) 143</font></div><div style="font-size:12.8000001907349px"><font color="#000000">  Extension:    139 (RENDER)</font></div><div style="font-size:12.8000001907349px"><font color="#000000">  Minor opcode: 7 (RenderFreePicture)</font></div><div style="font-size:12.8000001907349px"><font color="#000000">  Resource id:  0x24001b4</font></div><div style="font-size:12.8000001907349px"><font color="#000000"><br></font></div><div style="font-size:12.8000001907349px"><font color="#000000">In my example I try get screenshot twice:</font></div><div style="font-size:12.8000001907349px"><font color="#000000">QPixmap p = makeScreenshot(wid, display);</font></div><div style="font-size:12.8000001907349px"><font color="#000000">p = makeScreenshot(wid, display);</font></div><div style="font-size:12.8000001907349px"><font color="#000000"><br></font></div><div style="font-size:12.8000001907349px"><font color="#000000">And I have same errors in log, but images usually correct. Also if I remove line "XFreePixmap (display, pixmap);" then errors disappears.</font></div><div style="font-size:12.8000001907349px"><font color="#000000"><br></font></div><div style="font-size:12.8000001907349px"><font color="#000000">Actually, I'm nub. What did I do wrong? How I can know moment when pixmap is ready to use?</font></div><div style="font-size:12.8000001907349px"><font color="#000000"><br></font></div><div style="font-size:12.8000001907349px"><font color="#000000">Kind regards</font></div></div>