movimiento del puntero ¿Por qué los números son tan altos? ¿Por qué imprime la información en bloques no es un flujo constante?

¡Hola! Estoy tratando de escribir un programa en el que necesito informar la posición de cada movimiento del mouse. He llamado alXSelectInput() funcionar con unPointerMotionMask máscara. Todo parece funcionar bien, pero los números después de la impresión no aparecen después de cada movimiento, aparecen en bloques y también los números enevent.xmotion.x yevent.xmotion.y Son muy altos, en los cien mil.
¿Qué está causando estos grandes números?
¿También mi programa está obteniendo todos los números e informándolos inmediatamente o está siendo almacenado en una cola y enviado en bloques al terminal?
Gracias

Aquí está mi bucle de eventos:

while(1)
    {
        XNextEvent(display, &event);
        switch (event.type)
        {
            case Expose: 
                glClearColor( 1.0, 1.0, 0.0, 1.0 );
                    glClear( GL_COLOR_BUFFER_BIT );
                    glFlush();
                    glXSwapBuffers( display, glxwin );              
                break;
            case MotionNotify:
                printf("%d, %d", event.xmotion.x, event.xmotion.y);
                break;
            case ButtonPress: exit(1);
            default: break;     
        }   
    }

Respuestas a la pregunta(1)

Su respuesta a la pregunta