don't handle keybaord inputs, when the activeFocusItem is editing
This commit is contained in:
parent
4d1513e5e5
commit
c07cf24800
|
@ -56,11 +56,26 @@ static inline QskAspect::Section qskItemSection( const QQuickItem* item )
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool qskIsEnablingKey( const QKeyEvent* event )
|
static inline bool qskIsEnablingKey( const QKeyEvent* event )
|
||||||
{
|
{
|
||||||
// what keys do we want have here ???
|
// what keys do we want have here ???
|
||||||
return qskIsButtonPressKey( event ) || qskFocusChainIncrement( event );
|
return qskIsButtonPressKey( event ) || qskFocusChainIncrement( event );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool qskIsEditing( const QQuickWindow* window )
|
||||||
|
{
|
||||||
|
if ( !QGuiApplication::inputMethod()->isVisible() )
|
||||||
|
{
|
||||||
|
if ( auto item = window->activeFocusItem() )
|
||||||
|
{
|
||||||
|
const QVariant v = item->property( "editing" );
|
||||||
|
if ( v.value< bool >() )
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
class QskFocusIndicator::PrivateData
|
class QskFocusIndicator::PrivateData
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -74,13 +89,13 @@ class QskFocusIndicator::PrivateData
|
||||||
|
|
||||||
inline bool isAutoDisabling() const { return duration > 0; }
|
inline bool isAutoDisabling() const { return duration > 0; }
|
||||||
inline bool isAutoEnabling() const { return false; }
|
inline bool isAutoEnabling() const { return false; }
|
||||||
|
|
||||||
QPointer< QQuickItem > clippingItem;
|
QPointer< QQuickItem > clippingItem;
|
||||||
QVector< QMetaObject::Connection > connections;
|
QVector< QMetaObject::Connection > connections;
|
||||||
|
|
||||||
int duration = 0;
|
int duration = 0;
|
||||||
QBasicTimer timer;
|
QBasicTimer timer;
|
||||||
|
|
||||||
bool blockAutoRepeatKeyEvents = false;
|
bool blockAutoRepeatKeyEvents = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -187,6 +202,9 @@ bool QskFocusIndicator::eventFilter( QObject* object, QEvent* event )
|
||||||
case QEvent::KeyRelease:
|
case QEvent::KeyRelease:
|
||||||
case QEvent::ShortcutOverride:
|
case QEvent::ShortcutOverride:
|
||||||
{
|
{
|
||||||
|
if ( qskIsEditing( window() ) )
|
||||||
|
return false;
|
||||||
|
|
||||||
if ( m_data->timer.isActive() )
|
if ( m_data->timer.isActive() )
|
||||||
{
|
{
|
||||||
// renew the exposed period
|
// renew the exposed period
|
||||||
|
|
Loading…
Reference in New Issue