input method handling improved
This commit is contained in:
parent
fcab034bcb
commit
4d1513e5e5
|
@ -289,27 +289,6 @@ void QskTextEdit::keyPressEvent( QKeyEvent* event )
|
|||
{
|
||||
switch ( event->key() )
|
||||
{
|
||||
case Qt::Key_Enter:
|
||||
case Qt::Key_Return:
|
||||
{
|
||||
QGuiApplication::inputMethod()->commit();
|
||||
|
||||
const auto hints = inputMethodQuery( Qt::ImHints ).toInt();
|
||||
|
||||
if ( hints & Qt::ImhMultiLine )
|
||||
{
|
||||
m_data->wrappedEdit->handleEvent( event );
|
||||
}
|
||||
else
|
||||
{
|
||||
setEditing( false );
|
||||
|
||||
// When returning from a virtual keyboard
|
||||
qskForceActiveFocus( this, Qt::PopupFocusReason );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
#if 1
|
||||
case Qt::Key_Escape:
|
||||
{
|
||||
|
|
|
@ -88,5 +88,3 @@ QSizeF QskTextEditSkinlet::sizeHint( const QskSkinnable* skinnable,
|
|||
|
||||
return hint;
|
||||
}
|
||||
|
||||
#include "moc_QskTextEditSkinlet.cpp"
|
||||
|
|
|
@ -304,22 +304,13 @@ void QskTextInput::keyPressEvent( QKeyEvent* event )
|
|||
case Qt::Key_Enter:
|
||||
case Qt::Key_Return:
|
||||
{
|
||||
if ( hasAcceptableInput() || fixup() )
|
||||
const auto hints = inputMethodQuery( Qt::ImHints ).toInt();
|
||||
if ( !( hints & Qt::ImhMultiLine ) )
|
||||
{
|
||||
QGuiApplication::inputMethod()->commit();
|
||||
|
||||
const auto hints = inputMethodQuery( Qt::ImHints ).toInt();
|
||||
|
||||
if ( hints & Qt::ImhMultiLine )
|
||||
{
|
||||
m_data->wrappedInput->handleEvent( event );
|
||||
}
|
||||
else
|
||||
if ( hasAcceptableInput() || fixup() )
|
||||
{
|
||||
QGuiApplication::inputMethod()->commit();
|
||||
setEditing( false );
|
||||
|
||||
// When returning from a virtual keyboard
|
||||
qskForceActiveFocus( this, Qt::PopupFocusReason );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -329,14 +320,19 @@ void QskTextInput::keyPressEvent( QKeyEvent* event )
|
|||
case Qt::Key_Escape:
|
||||
{
|
||||
setEditing( false );
|
||||
qskForceActiveFocus( this, Qt::PopupFocusReason );
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
{
|
||||
m_data->wrappedInput->handleEvent( event );
|
||||
}
|
||||
}
|
||||
|
||||
if ( isEditing() )
|
||||
{
|
||||
m_data->wrappedInput->handleEvent( event );
|
||||
}
|
||||
else
|
||||
{
|
||||
// When returning from a virtual keyboard
|
||||
qskForceActiveFocus( this, Qt::PopupFocusReason );
|
||||
}
|
||||
|
||||
return;
|
||||
|
@ -577,6 +573,9 @@ void QskTextInput::setReadOnly( bool on )
|
|||
// we are killing user settings here ?
|
||||
input->setFlag( QQuickItem::ItemAcceptsInputMethod, !on );
|
||||
qskUpdateInputMethod( this, Qt::ImEnabled );
|
||||
#if 0
|
||||
qskUpdateInputMethod( this, Qt::ImReadOnly ); // since 6.2
|
||||
#endif
|
||||
|
||||
setSkinStateFlag( ReadOnly, on );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue