https://bugs.kde.org/show_bug.cgi?id=514241
--- Comment #2 from H. Matsuura <[email protected]> --- In addition to the previous fix, modifying the start of the RdpSession::sendEvent function in the rdpsession.cpp file as follows enable the key to work. (Other keys that previously didn't work, such as “Muhenkan” and “Henkan”, now function.) However, I'm not sure that this approach—get the key type with freerdp_settings_get_uint32 every time this event occurs—is optimal. If it seems acceptable, I'll clean up the code and submit a merge request. bool RdpSession::sendEvent(QEvent *event, QWidget *source) { auto input = m_context.rdp->input; auto settings = m_context.rdp->settings; auto keytype = freerdp_settings_get_uint32(settings, FreeRDP_KeyboardType); switch (event->type()) { case QEvent::KeyPress: case QEvent::KeyRelease: { if (m_needKeyStateSync) { m_needKeyStateSync = false; syncKeyState(); } auto keyEvent = static_cast<QKeyEvent *>(event); const DWORD vc = GetVirtualKeyCodeFromKeycode(keyEvent->nativeScanCode(), WINPR_KEYCODE_TYPE_XKB); //const DWORD code = GetVirtualScanCodeFromVirtualKeyCode(vc, WINPR_KBD_TYPE_IBM_ENHANCED); const DWORD code = GetVirtualScanCodeFromVirtualKeyCode(vc, keytype); freerdp_input_send_keyboard_event_ex(input, keyEvent->type() == QEvent::KeyPress, keyEvent->isAutoRepeat(), code); return true; } case QEvent::MouseButtonPress: (the rest is omitted.) -- You are receiving this mail because: You are watching all bug changes.
