Я уже некоторое время пытаюсь добиться этого, но не могу. XNextEvent никогда не вызывается. Я использую Ubuntu 22.04. Это код, который у меня есть на данный момент. Я хочу распечатать как щелчки, так и движения мыши. Я пробовал использовать XAllowEvents, XGrabPointer, это не сработает. Почему?
#include #include символ *имя_ключа[] = { "первый", «второй (или средний)», "третий", "четвертый", //

"пятый" // :| }; int main(int argc, char **argv) { Дисплей *дисплей; XEvent xevent; Окно-окно; if( (display = XOpenDisplay(NULL)) == NULL ) вернуть -1; окно = DefaultRootWindow (дисплей); XAllowEvents (дисплей, AsyncBoth, CurrentTime); XGrabPointer(отображение, окно, 1, Маска PointerMotion | ButtonPressMask | КнопкаReleaseMask , GrabModeAsync, GrabModeAsync, Никто, Никто, Текущее время); в то время как (1) { XNextEvent(дисплей, &xevent); переключатель (xevent.type) { чехол MotionNotify: printf("Перемещение мыши: [%d, %d]\n", xevent.xmotion.x_root, xevent.xmotion.y_root); перерыв; чехол printf("Кнопка нажата: %s\n", key_name[xevent.xbutton.button - 1]); перерыв; чехол printf("Кнопка отпущена: %s\n", key_name[xevent.xbutton.button - 1]); перерыв; } } вернуть 0; }