Сделал проект демонстрирующий косяк(?): http://pastebin.com/jtCcRz9B.
Суть в том, что если получить через KWindowSystem::windows() список окон и для каждого сделать скрин через XRender, то если открыто несколько окон одного приложения вместо последнего в скриншоте будет фигня: http://postimg.org/image/3zmrvxtqz/. Если я меняю порядок получения скриншотов на обратный (рассортирую WId от большего к меньшему), то иногда всё нормально: http://postimg.org/image/4c3nbrzyr/, а иногда всё равно косяки при чём на одном и том же окне - окне с большим WId.
Это не зависит от числа открытых окон, если одно - ок, если 2 - косяк со вторым, если 3 - с 3им, и т.д. При чём это только для окон одного приложения, если приложения разные то всё ок.
Собственно вопрос, что за фигня происходит и как это можно чинить? А так же детектировать в автоматическом режиме ибо ничего не отваливается, а в консоль просто сыпятся сообщения вида?
X Error: BadDrawable (invalid Pixmap or Window parameter) 9 Extension: 139 (RENDER) Minor opcode: 4 (RenderCreatePicture) Resource id: 0x7400005 X Error: BadDrawable (invalid Pixmap or Window parameter) 9 Major opcode: 62 (X_CopyArea) Resource id: 0x7400005 X Error: RenderBadPicture (invalid Picture parameter) 143 Extension: 139 (RENDER) Minor opcode: 7 (RenderFreePicture) Resource id: 0x1e0001f
ПС. Приложение делает скрины Dolphin'а