Коллеги, приветсвую.
К сожалению, вопрос срочный, поэтому пишу в надежде.
В общем, тут пришлось в авральном порядке бежать с X11 на EGL, а заодно и с 5.4.2 на 5.9.1. А в программе была виртуальная клава. Но в новой кутэ она уже не работала, поэтому экстренно колхозю свой аналог.
Cделал, вроде работает, но первый тык по тачскину пропадает, а остальное уже отрабатывает правильно.
Так ловлю клик по лайнедиту
bool QWshLogin::eventFilter(QObject *object, QEvent *event)
{
if (event->type() == QEvent::MouseButtonPress)
if (object == ui->lineEdit_Usercode) {
emit requestVirtualKeyboard(ui->lineEdit_Usercode, false);
return true;
}
return false;
}
Так отрабатываю открытие окна
if (useCurrentText == true)
ui->edValue->setText(lineEdit->text());
else
ui->edValue->setText("");
show();
this->activateWindow();
this->raise();
ui->edValue->setFocus();
Вcе, что после show() - это попытки исправить ситуацию. Но все по-прежнему.
Хотя лайнедит после setFocus() становится визуально активным (курсор мигает).
Я так понимаю, что проблема в том, что я прерываю своим сигналом обработку сообщений, поэтому-то у меня и теряется (или уходит в другую очередь?) первое сообщение, но как поправить не могу сообразить.
Причем, если окно немодальное, то все работает правильно.
Буду благодарен за подсказки.