В настоящее время я использую Xlib только для одной функции XRestack Windows, остальное - XCB и QT5. Требуется использовать только XCB и QT5.
Я хотел бы знать, как получить правильный XRestack Windows в XCB, я пробовал решение из здесь , но windows будет означать sh
Он должен работать почти так же, как в XLIB. Нет windows мигает при перезапуске, если я перезагружаю тот же порядок windows, тогда не должно возникать экранной ошибки sh.
Код XCB, который не работал должным образом (проблема: вспыхнул windows при перезапуске ):
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);
}
Примечание: я пробовал разные методы без удачи, я смотрел на функцию XRestack Windows, похоже, они используют LockDisplay и UnlockDisplay, я не смог найти ее в XCB.