ivi-input-controller causes qtvirtualkeyboardplugin to fail emit keystokes
Description
Environment
Attachments
- 22 Jan 2018, 12:58 AM
- 19 Jan 2018, 12:01 PM
Activity
Matt Ranostay February 20, 2019 at 3:43 AM
qtvirtualkeyboard is GPLv3 only, and also only a static library. So likely can't be used as is
knimitz May 16, 2018 at 2:48 AM
I'm sorry, I lectured about how to attach files to JIRA ticket, then pushed test png accidentally.
Matt Ranostay May 15, 2018 at 12:46 PM
@knimitz There some new png that suppose to be in the attachments?
knimitz January 24, 2018 at 9:44 AM
Good log. Refer to the log, I probably found the root cause.
According to https://www.toradex.com/community/questions/9687/qt5-input-method-is-not-set.html, I thought this is the same issue. So, the root cause is the surface doesn't get focus of keyboard.
When I did the following command, keystroke appears on textbox on my side.
LayerManagerControl set surface 2 input acceptance to default
LayerManagerControl set surfaces 2 input focus keyboard
I assume surface id of settings application is 2.
Then qt.virtualkeyboard seems to get inputMethod. Below is the log after setting focus.
Jan 09 10:35:37 m3ulcb afbd-settings@0.1[4689]: qt.virtualkeyboard: PlatformInputContext::update(): QFlags<Qt::InputMethodQuery>(ImInputItemClipRectangle)
Jan 09 10:35:37 m3ulcb afbd-settings@0.1[4689]: qt.virtualkeyboard: PlatformInputContext::setFocusObject(): QQuickItem(0x2c928940)
Jan 09 10:35:37 m3ulcb afbd-settings@0.1[4689]: qt.virtualkeyboard: PlatformInputContext::update(): QFlags<Qt::InputMethodQuery>(ImQueryAll)
ivi-input-controller doesn't attach all focus of events to the top application automatically. (touch event is automatically attached). If ivi-input-controller is necessary, HMI controller such like window manager should implements controlling ivi-input-controller. Currently, Window manager doesn't implement ivi-input management.
So ivi-input-controller.so should not be enabled for now, IMHO.
Matt Ranostay January 24, 2018 at 3:12 AM
Turned on debugging and there is clearly something going on in the background that is likely due to ivi-input-controller taking the focus
With ivi-input-controller.so disabled:
Jan 24 02:15:37 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: InputContext::setLocale(): "en_GB"
Jan 24 02:15:37 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::setLocale(): QLocale(English, Latin, UnitedKingdom)
Jan 24 02:15:42 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::update(): QFlags<Qt::InputMethodQuery>(ImInputItemClipRectangle)
Jan 24 02:15:42 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::setFocusObject(): MapComponent_QMLTYPE_67(0x8a43e0)
Jan 24 02:15:42 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::update(): QFlags<Qt::InputMethodQuery>(ImQueryAll)
Jan 24 02:15:55 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::commit()
Jan 24 02:15:55 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::update(): QFlags<Qt::InputMethodQuery>(ImInputItemClipRectangle)
Jan 24 02:15:55 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::showInputPanel()
Jan 24 02:15:55 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::setFocusObject(): TextInputWithHandles_QMLTYPE_143(0x13bbc10)
Jan 24 02:15:55 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::update(): QFlags<Qt::InputMethodQuery>(ImQueryAll)
Jan 24 02:15:55 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: InputEngine::reselect(): 9 QFlags(0x1|0x2)
Jan 24 02:15:55 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: InputContext::setFocus(): true
Jan 24 02:15:55 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: InputEngine::setInputMethod(): QtVirtualKeyboard::PlainInputMethod(0x143c680)
Jan 24 02:15:55 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: InputEngine::setInputMode(): 1
Jan 24 02:16:01 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::commit()
Jan 24 02:16:01 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::update(): QFlags<Qt::InputMethodQuery>(ImInputItemClipRectangle)
Jan 24 02:16:01 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::setFocusObject(): TextInputWithHandles_QMLTYPE_143(0x11774c0)
Jan 24 02:16:01 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: PlatformInputContext::update(): QFlags<Qt::InputMethodQuery>(ImQueryAll)
Jan 24 02:16:01 qemux86-64 afbd-navigation@0.1[647]: qt.virtualkeyboard: InputEngine::reselect(): 7 QFlags(0x1|0x2)
With ivi-input-controller.so enabled:
Jan 24 03:04:00 qemux86-64 afbd-navigation@0.1[710]: qt.virtualkeyboard: InputContext::setLocale(): "en_GB"
Jan 24 03:04:00 qemux86-64 afbd-navigation@0.1[710]: qt.virtualkeyboard: PlatformInputContext::setLocale(): QLocale(English, Latin, UnitedKingdom)
Jan 24 03:04:18 qemux86-64 afbd-navigation@0.1[710]: qt.virtualkeyboard: PlatformInputContext::commit()
Jan 24 03:04:18 qemux86-64 afbd-navigation@0.1[710]: qt.virtualkeyboard: PlatformInputContext::showInputPanel()
qtvirtualkeyboardplugin keyboard appears but doesn't send keystrokes to text fields unless ivi-input-controller is disable within weston.ini