Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Qt4 External keyboard handling issues On wince platform



  • The key s of the external keyboard is treated as a hot key, and the function is the same as backspace.

    the source file: C:\Qt\qt-everywhere-opensource-src-4.7.3\src\gui\kernel\qapplication_win.cpp

    code snippet:

    extern "C" LRESULT QT_WIN_CALLBACK QtWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
         .....
    #if Q_OS_WINCE_WM
            case WM_HOTKEY:
                if(HIWORD(msg.lParam) == VK_TBACK) {
                    const bool hotKeyDown = !(LOWORD(msg.lParam) & MOD_KEYUP);
                    msg.lParam = 0x69 << 16;
                    msg.wParam = VK_BACK;
                    if (hotKeyDown) {
                        msg.message = WM_KEYDOWN;
                        qt_keymapper_private()->updateKeyMap(msg);
                    } else {
                        msg.message = WM_KEYUP;
                    }
                }
                // fall-through intended
    #endif 
        ....
    }
    

    Comment out the code segment and recompile the library to solve this problem

    I have sent a Technical Issue Report to qt official.
    Hope to get a feedback that can explain why it is implemented this way
    my Email: craigtao@hushmail.com
    ~///(^v^)\~


Log in to reply