В настоящее время я использую Xlib только для одной функции XRestackWindows, остальное — XCB и QT5. Требуется использовать только XCB и QT5.
Я хотел бы знать способ иметь правильный XRestackWindows в XCB, я пробовал решение из здесь но окна будут мигать
Он должен работать почти так же, как в XLIB. Никакие окна не мигают при переустановке, если я переустанавливаю окна в том же порядке, то мигание экрана не должно происходить.
Код XCB, который не работал должным образом (проблема: мигание окон при повторном стеке):
void restackWindows(std::vector<xcb_window_t> list)
{
xcb_connection_t *conn = QX11Info::connection();
unsigned int arg[1] = { XCB_STACK_MODE_ABOVE };
for ( auto win : list )
{
xcb_configure_window(conn, win, XCB_CONFIG_WINDOW_STACK_MODE, arg);
}
xcb_flush(conn);
}
Примечание. Я безуспешно пробовал разные методы, я искал функцию XRestackWindows, похоже, они используют LockDisplay и UnlockDisplay, я не смог найти ее в XCB.