/*! This function is not intended as polymorphic usage. Just a shared code fragment that calls QInputContext::mouseHandler for this class. */ bool QLineEditPrivate::sendMouseEventToInputContext( QMouseEvent *e ) { #if !defined QT_NO_IM Q_Q(QLineEdit); if ( control->composeMode() ) { int tmp_cursor = xToPos(e->pos().x()); int mousePos = tmp_cursor - control->cursor(); if ( mousePos < 0 || mousePos > control->preeditAreaText().length() ) { mousePos = -1; // don't send move events outside the preedit area if ( e->type() == QEvent::MouseMove ) return true; } QInputContext *qic = q->inputContext(); if ( qic ) // may be causing reset() in some input methods qic->mouseHandler(mousePos, e); if (!control->preeditAreaText().isEmpty()) return true; } #else Q_UNUSED(e); #endif return false; }
/*! This function is not intended as polymorphic usage. Just a shared code fragment that calls QInputMethod::invokeAction for this class. */ bool QLineEditPrivate::sendMouseEventToInputContext( QMouseEvent *e ) { #if !defined QT_NO_IM if ( control->composeMode() ) { int tmp_cursor = xToPos(e->pos().x()); int mousePos = tmp_cursor - control->cursor(); if ( mousePos < 0 || mousePos > control->preeditAreaText().length() ) mousePos = -1; if (mousePos >= 0) { if (e->type() == QEvent::MouseButtonRelease) QGuiApplication::inputMethod()->invokeAction(QInputMethod::Click, mousePos); return true; } } #else Q_UNUSED(e); #endif return false; }