On Wed, 17 Oct 2018 at 13:51, Christian Gagneraud <chg...@gmail.com> wrote: > > I'm running the QtWayland 'pure-qml' example on an imx61 board with > linuxfb QPA, Qt-5.11.1 (I'm waiting for a 5.11.2 build). > I followed instructions from > http://doc.qt.io/qt-5/qtvirtualkeyboard-deployment-guide.html#using-qt-virtual-keyboard-with-qt-wayland. > The wayland client is the QtWidget's 'wiggly' example. > > When I click on the QLineEdit of Wiggly, the VKB pops up, but every > key i tap send QKeyEvent to wiggly, where the key code is always null > (zero).
So i've run the same setup on Linux Desktop with Qt-5.11.1 and Qt-5.11.2 and it works as expected in both cases. I have as well enabled WAYLAND_DEBUG, and discovered that the problem lies somewhere b/w Qt VKB and QWaylandCompositor, here is a trace that show the lost of the key code: Logs from pure-qml: ... qt.virtualkeyboard: InputContext::::sendKeyClick(): 16777219 [2541671.231] -> zwp_text_input_v2@14.keysym(0, 0, 1, 0) [2541671.480] -> zwp_text_input_v2@14.keysym(0, 0, 0, 0) ... Will investigate, to see the difference of wayland version b/w Linux Desktop and our custom embedded Linux distro. Chris > > The key codes are correct on the wayland compositor side, from Qt logging: > qt.virtualkeyboard: InputEngine::virtualKeyPress(): Qt::Key(Key_O) "O" > QFlags<Qt::KeyboardModifiers>(ShiftModifier) false > qt.virtualkeyboard: InputEngine::virtualKeyRelease(): Qt::Key(Key_O) > "O" QFlags<Qt::KeyboardModifiers>(ShiftModifier) > qt.virtualkeyboard: InputContext::::sendKeyClick(): 79 > > But from Wiggly (dumping QKeyEvent via eventFilter on the line edit): > QKeyEvent(KeyRelease, 0) > QKeyEvent(KeyPress, 0) > QKeyEvent(KeyRelease, 0) > QKeyEvent(KeyPress, 0) > QKeyEvent(KeyRelease, 0) > > All of the above is done with QtCreator: > > Wiggly is run with "-platform wayland" command line arguments and the > following 'Clean Run Environment': > QML2_IMPORT_PATH=/usr/lib/qt-5.11.1-imx61-shared/qml > QT_PLUGIN_PATH=/usr/lib/qt-5.11.1-imx61-shared/plugins > QT_QPA_PLATFORM=wayland > XDG_RUNTIME_DIR=/tmp > > pure-qml is run with "-platform linuxfb -plugin evdevtouch" command > line arguments and the following 'Clean Run Environment': > QML2_IMPORT_PATH=/usr/lib/qt-5.11.1-imx61-shared/qml > QT_IM_MODULE=qtvirtualkeyboard > QT_LOGGING_DEBUG=1 > QT_LOGGING_RULES=qt.virtualkeyboard=true;qt.qpa.wayland*=true; > QT_PLUGIN_PATH=/usr/lib/qt-5.11.1-imx61-shared/plugins > QT_QPA_FB_DISABLE_INPUT=1 > QT_QPA_FONTDIR=/usr/share/fonts > XDG_RUNTIME_DIR=/tmp > ___QML_IMPORT_TRACE=1 > ___QT_DEBUG_PLUGINS=1 > > Any idea about what is going on? As anyone successfully use such a setup? > Any tip on how to debug this further? > > Thanks, > Chris > > Notes: > > I have issues with udev and /dev/input, not sure if this can influence > the VKB. I'm currently waiting for a fix from our platform team. > > Full log from pure-qml: > > QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed > QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open > failed > Failed to open tty (No such device) > This plugin does not support createPlatformOpenGLContext! > QtCompositor: Failed to initialize EGL display. Could not get > EglDisplay for window. > qt.virtualkeyboard: InputContext::setLocale(): "en_GB" > qt.virtualkeyboard: PlatformInputContext::setLocale(): > QLocale(English, Latin, UnitedKingdom) > qt.virtualkeyboard: PlatformInputContext::update(): > QFlags<Qt::InputMethodQuery>(ImInputItemClipRectangle) > qt.virtualkeyboard: PlatformInputContext::update(): > QFlags<Qt::InputMethodQuery>(ImInputItemClipRectangle) > qt.virtualkeyboard: PlatformInputContext::setFocusObject(): > QQuickRootItem(0x80368) > qt.virtualkeyboard: PlatformInputContext::update(): > QFlags<Qt::InputMethodQuery>(ImQueryAll) > qt.virtualkeyboard: PlatformInputContext::commit() > qt.virtualkeyboard: PlatformInputContext::update(): > QFlags<Qt::InputMethodQuery>(ImInputItemClipRectangle) > qt.virtualkeyboard: PlatformInputContext::setFocusObject(): > Chrome_QMLTYPE_4(0x321f98) > qt.virtualkeyboard: PlatformInputContext::update(): > QFlags<Qt::InputMethodQuery>(ImQueryAll) > qt.virtualkeyboard: PlatformInputContext::update(): > QFlags<Qt::InputMethodQuery>(ImEnabled|ImQueryInput) > qt.virtualkeyboard: InputContext::setFocus(): true > qt.virtualkeyboard: InputEngine::setInputMethod(): > QtVirtualKeyboard::PlainInputMethod(0xa51e0) > qt.virtualkeyboard: InputEngine::setInputMode(): > QtVirtualKeyboard::InputEngine::InputMode(Latin) > qt.virtualkeyboard: PlatformInputContext::reset() > qt.virtualkeyboard: PlatformInputContext::update(): > QFlags<Qt::InputMethodQuery>(ImEnabled|ImMicroFocus|ImCursorPosition|ImSurroundingText|ImCurrentSelection|ImAnchorPosition) > qt.virtualkeyboard: InputEngine::reselect(): 12 QFlags(0x1|0x2) > qt.virtualkeyboard: PlatformInputContext::reset() > qt.virtualkeyboard: PlatformInputContext::update(): > QFlags<Qt::InputMethodQuery>(ImEnabled|ImMicroFocus) > qt.virtualkeyboard: PlatformInputContext::showInputPanel() > qt.virtualkeyboard: InputEngine::virtualKeyPress(): > Qt::Key(Key_Backspace) "" QFlags<Qt::KeyboardModifiers>(ShiftModifier) > true > qt.virtualkeyboard: InputEngine::virtualKeyRelease(): > Qt::Key(Key_Backspace) "" QFlags<Qt::KeyboardModifiers>(ShiftModifier) > qt.virtualkeyboard: InputContext::::sendKeyClick(): 16777219 > ... > > Not sure if the iconv and tty warnings are related. > > Full log from wiggly: > > QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed > QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open > failed > Using Wayland-EGL > EGL not available > Using the 'xdg-shell-v6' shell integration > QFocusEvent(FocusIn, ActiveWindowFocusReason) > QKeyEvent(KeyPress, 0) 0 > QKeyEvent(KeyRelease, 0) 0 > ... > > Currently EGL is not ready, hence the warnings, I beleive this is not > an issue here as QtWayland will fallback to SHM buffers. _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest