fix for mstsc altgr

ulab-original
jsorg71 15 years ago
parent abba73f9bc
commit 2b8a5f42b1

@ -255,12 +255,29 @@ lib_mod_event(struct vnc* v, int msg, long param1, long param2,
key = param2; key = param2;
if (key > 0) if (key > 0)
{ {
if (key == 65027) /* altgr */
{
if (v->shift_state)
{
/* fix for mstsc sending left control down with altgr */
init_stream(s, 8192);
out_uint8(s, 4);
out_uint8(s, 0); /* down flag */
out_uint8s(s, 2);
out_uint32_be(s, 65507); /* left control */
lib_send(v, s->data, 8);
}
}
init_stream(s, 8192); init_stream(s, 8192);
out_uint8(s, 4); out_uint8(s, 4);
out_uint8(s, msg == 15); /* down flag */ out_uint8(s, msg == 15); /* down flag */
out_uint8s(s, 2); out_uint8s(s, 2);
out_uint32_be(s, key); out_uint32_be(s, key);
error = lib_send(v, s->data, 8); error = lib_send(v, s->data, 8);
if (key == 65507) /* left control */
{
v->shift_state = msg == 15;
}
} }
} }
else if (msg >= 100 && msg <= 110) /* mouse events */ else if (msg >= 100 && msg <= 110) /* mouse events */

Loading…
Cancel
Save