2013-07-06 3 views
3

Я собираюсь ответить на свой вопрос здесь.Как предотвратить буферизацию клавиатуры на сервере VNC дроида

Вопрос в том, как предотвратить предотвращение событиями буферизации ключевых событий Droid VNC Server и их отправку в систему ввода Android до тех пор, пока не появится событие с указателем (mouse/gesture/tap и т. Д.)?

Я использую пользовательскую сборку Droid VNC-сервера от Droid VNC Server on GitHub на Android x86.

Проблема была в том, что я набирал ряд символов на клавиатуре в редактируемом текстовом поле, но они не появлялись, пока я не коснулся где-нибудь на экране (будьте осторожны, чтобы текстовое поле не потеряло фокус) тем самым вызывая событие мыши.

ответ

3

В /jni/vnc/inputMethods/input.c там, где я добавил одну строку кода, чтобы очистить основные события в «реальном времени» метод KeyEvent:

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);