|
|
|
|
|
|
|
|
|
|
|
|
|
|
xkb = XkbGetMap(fl_display, 0, XkbUseCoreKbd); |
|
|
xkb = XkbGetMap(fl_display, 0, XkbUseCoreKbd); |
|
|
if (!xkb) |
|
|
if (!xkb) |
|
|
throw Exception("XkbGetMap"); |
|
|
|
|
|
|
|
|
throw rfb::Exception("XkbGetMap"); |
|
|
|
|
|
|
|
|
status = XkbGetNames(fl_display, XkbKeyNamesMask, xkb); |
|
|
status = XkbGetNames(fl_display, XkbKeyNamesMask, xkb); |
|
|
if (status != Success) |
|
|
if (status != Success) |
|
|
throw Exception("XkbGetNames"); |
|
|
|
|
|
|
|
|
throw rfb::Exception("XkbGetNames"); |
|
|
|
|
|
|
|
|
memset(code_map_keycode_to_qnum, 0, sizeof(code_map_keycode_to_qnum)); |
|
|
memset(code_map_keycode_to_qnum, 0, sizeof(code_map_keycode_to_qnum)); |
|
|
for (KeyCode keycode = xkb->min_key_code; |
|
|
for (KeyCode keycode = xkb->min_key_code; |