workaround for setting the focus with Qt::PopupFocusReason
This commit is contained in:
parent
e2ca55819e
commit
79c53bb1c7
@ -151,6 +151,25 @@ QQuickItem* qskNearestFocusScope( const QQuickItem* item )
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void qskForceActiveFocus( QQuickItem* item, Qt::FocusReason reason )
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
For unknown reasons Qt::PopupFocusReason is blocked inside of
|
||||||
|
QQuickItem::setFocus and so we can't use QQuickItem::forceActiveFocus
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ( item == nullptr || item->window() == nullptr )
|
||||||
|
return;
|
||||||
|
|
||||||
|
auto wp = QQuickWindowPrivate::get( item->window() );
|
||||||
|
|
||||||
|
while ( const auto scope = qskNearestFocusScope( item ) )
|
||||||
|
{
|
||||||
|
wp->setFocusInScope( scope, item, reason );
|
||||||
|
item = scope;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void qskUpdateInputMethod( const QQuickItem* item, Qt::InputMethodQueries queries )
|
void qskUpdateInputMethod( const QQuickItem* item, Qt::InputMethodQueries queries )
|
||||||
{
|
{
|
||||||
auto inputMethod = QGuiApplication::inputMethod();
|
auto inputMethod = QGuiApplication::inputMethod();
|
||||||
|
@ -260,6 +260,8 @@ QSK_EXPORT QRectF qskItemGeometry( const QQuickItem* );
|
|||||||
QSK_EXPORT void qskSetItemGeometry( QQuickItem*, const QRectF& );
|
QSK_EXPORT void qskSetItemGeometry( QQuickItem*, const QRectF& );
|
||||||
|
|
||||||
QSK_EXPORT QQuickItem* qskNearestFocusScope( const QQuickItem* );
|
QSK_EXPORT QQuickItem* qskNearestFocusScope( const QQuickItem* );
|
||||||
|
QSK_EXPORT void qskForceActiveFocus( QQuickItem*, Qt::FocusReason );
|
||||||
|
|
||||||
QSK_EXPORT QList< QQuickItem* > qskPaintOrderChildItems( const QQuickItem* );
|
QSK_EXPORT QList< QQuickItem* > qskPaintOrderChildItems( const QQuickItem* );
|
||||||
|
|
||||||
QSK_EXPORT void qskUpdateInputMethod( const QQuickItem*, Qt::InputMethodQueries );
|
QSK_EXPORT void qskUpdateInputMethod( const QQuickItem*, Qt::InputMethodQueries );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user