2013-07-06 5 views
3

Je vais répondre à ma propre question ici. La question est la suivante: comment empêcher Droid VNC Server de mettre en mémoire tampon les événements clés et de ne pas les envoyer au système de saisie d'Android tant qu'il n'y a pas d'événement pointeur (souris/geste/tap etc.)? J'utilise une version personnalisée de Droid VNC Server de Droid VNC Server on GitHub sous Android x86. Le problème que je constatais était que je tapais une série de caractères sur le clavier dans un champ de texte modifiable, mais qu'ils n'apparaissaient pas avant de toucher quelque part sur l'écran (attention à ne pas laisser le champ de texte perdre le focus) provoquant ainsi un événement de souris.Comment empêcher la mise en mémoire tampon du clavier sur le serveur VNC de droid

Répondre

3

En /jni/vnc/inputMethods/input.c il y a une méthode keyEvent où j'ai ajouté une ligne de code pour débusquer les événements clés « temps réel »:

void keyEvent(rfbBool down, rfbKeySym key, rfbClientPtr cl) 
{ 
.... 
if (key && down) 
{ 
.... 
} 
// Added this to "flush" out key events as they come in achieving real-time 
// character input on Android 
suinput_write(inputfd, EV_SYN, SYN_REPORT, 0); 
Questions connexes