#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 выше.
Кроме того, когда я транслирую растровое изображение, оно правильное, поэтому оно идентифицирует правильный курсор.
Спасибо за всю помощь и дайте мне знать, если мне понадобится что-то еще!