XFixesGetCursorImage Всегда Возвращает Пустое имя и Атом

#c #c #ubuntu #x11

Вопрос:

Я пытаюсь обнаружить имя и изображение курсора в потоковом приложении. В настоящее время я использую расширение XFixes для X11 для обнаружения курсора. Ниже приведен код, который у меня есть в настоящее время:

 void init_cursors() {
    disp = XOpenDisplay(NULL);
    XFixesQueryExtension(disp, amp;major, amp;minor);
    XFixesQueryVersion(disp, amp;major, amp;minor);
    XFixesSelectCursorInput(disp, DefaultRootWindow(disp), XFixesDisplayCursorNotifyMask);
    ibeam = XcursorLibraryLoadCursor(disp, "xterm");
}

void get_current_cursor(CursorImage* image) {

    if (disp) {
        XFixesCursorImage* ci = XFixesGetCursorImage(disp);

        printf("Cursor Name: %s, Atom: %dn", ci->name, ci->atom);
        XFree(ci);
}
 

Однако всякий раз, когда я передаю приложение в потоковую передачу и курсор становится курсором iBeam, он не распечатывается. Он остается пустым. Я занимаюсь этим уже несколько дней и не могу понять, что может происходить.

Я подтвердил, что у меня есть исправления версии 2 выше.

Кроме того, когда я транслирую растровое изображение, оно правильное, поэтому оно идентифицирует правильный курсор.

Спасибо за всю помощь и дайте мне знать, если мне понадобится что-то еще!