I upgraded my MR - with that change, the OSK always remains hidden, after
swiping it away. So it's easier to reproduce the issue (at least on my maguro)
...
For the focus inside the app, or the app not having the focus. I don't think
that's the case. Otherwise the OSK would work again after switching to another
app.
So I rather think the issue is really on the maliit-server (the OSK) itself.
I just added a timer - printing a debug message every second.
When the display stays hidden, the output stops.
Which means the maliit-server process is frozen.
And with some debugging I can see that
"view->setVisible(false);" never returns. (view is a QQuickView object).
in "void closeOskWindow()" of file src/plugin/inputmethod_p.h
I used this debug messages:
void closeOskWindow()
{
if (!view->isVisible())
return;
qWarning() << Q_FUNC_INFO << 1; host->notifyImInitiatedHiding();
qWarning() << Q_FUNC_INFO << 2; qmlRootItem->setProperty("shown", false);
qWarning() << Q_FUNC_INFO << 3; layout.updater.resetOnKeyboardClosed();
qWarning() << Q_FUNC_INFO << 4; editor.clearPreedit();
qWarning() << Q_FUNC_INFO << 5; view->setVisible(false);
qWarning() << Q_FUNC_INFO << 6; applicationApiWrapper->reportOSKInvisible();
qWarning() << Q_FUNC_INFO << 7;
}
latest debugging from gush:
I upgraded my MR - with that change, the OSK always remains hidden, after
swiping it away. So it's easier to reproduce the issue (at least on my maguro)
...
https:/ /code.launchpad .net/~schwann/ ubuntu- keyboard/ keyboard- swipe-hide- show/+merge/ 191263
For the focus inside the app, or the app not having the focus. I don't think
that's the case. Otherwise the OSK would work again after switching to another
app.
So I rather think the issue is really on the maliit-server (the OSK) itself.
I just added a timer - printing a debug message every second.
When the display stays hidden, the output stops.
Which means the maliit-server process is frozen.
And with some debugging I can see that setVisible( false); " never returns. (view is a QQuickView object).
"view->
in "void closeOskWindow()" of file src/plugin/ inputmethod_ p.h >isVisible( ))
host-> notifyImInitiat edHiding( );
qmlRootItem- >setProperty( "shown" , false);
layout. updater. resetOnKeyboard Closed( );
editor. clearPreedit( );
view-> setVisible( false);
applicationApi Wrapper- >reportOSKInvis ible();
I used this debug messages:
void closeOskWindow()
{
if (!view-
return;
qWarning() << Q_FUNC_INFO << 1;
qWarning() << Q_FUNC_INFO << 2;
qWarning() << Q_FUNC_INFO << 3;
qWarning() << Q_FUNC_INFO << 4;
qWarning() << Q_FUNC_INFO << 5;
qWarning() << Q_FUNC_INFO << 6;
qWarning() << Q_FUNC_INFO << 7;
}
and got that output: :InputMethodPri vate::closeOskW indow() 1 :InputMethodPri vate::closeOskW indow() 2 :InputMethodPri vate::closeOskW indow() 3 :InputMethodPri vate::closeOskW indow() 4 :InputMethodPri vate::closeOskW indow() 5
WARNING: void MaliitKeyboard:
WARNING: void MaliitKeyboard:
WARNING: void MaliitKeyboard:
WARNING: void MaliitKeyboard:
WARNING: void MaliitKeyboard: