56void QInputMethod::setInputItemTransform(
const QTransform &transform)
59 if (d->inputItemTransform == transform)
62 d->inputItemTransform = transform;
63 emit cursorRectangleChanged();
64 emit anchorRectangleChanged();
279void QInputMethod::update(Qt::InputMethodQueries queries)
283 if (queries & Qt::ImEnabled) {
284 QObject *focus =
qApp->focusObject();
285 bool enabled = d->objectAcceptsInputMethod(focus);
286 QPlatformInputContextPrivate::setInputMethodAccepted(enabled);
289 QPlatformInputContext *ic = d->platformInputContext();
293 if (queries & Qt::ImCursorRectangle)
294 emit cursorRectangleChanged();
296 if (queries & (Qt::ImAnchorRectangle))
297 emit anchorRectangleChanged();
299 if (queries & (Qt::ImInputItemClipRectangle))
300 emit inputItemClipRectangleChanged();
363bool QInputMethodPrivate::objectAcceptsInputMethod(QObject *object)
365 bool enabled =
false;
369 static const bool supportsHiddenText = platformSupportsHiddenText();
370 QInputMethodQueryEvent query(supportsHiddenText
371 ? Qt::InputMethodQueries(Qt::ImEnabled)
372 : Qt::InputMethodQueries(Qt::ImEnabled | Qt::ImHints));
373 QGuiApplication::sendEvent(object, &query);
374 enabled = query.value(Qt::ImEnabled).toBool();
375 if (enabled && !supportsHiddenText
376 && Qt::InputMethodHints(query.value(Qt::ImHints).toInt()).testFlag(Qt::ImhHiddenText)) {
386QVariant QInputMethod::queryFocusObject(Qt::InputMethodQuery query,
const QVariant &argument)
389 QObject *focusObject =
qGuiApp->focusObject();
393 static const char *signature =
"inputMethodQuery(Qt::InputMethodQuery,QVariant)";
394 const bool newMethodSupported = focusObject->metaObject()->indexOfMethod(signature) != -1;
395 if (newMethodSupported) {
396 const bool ok = QMetaObject::invokeMethod(focusObject,
"inputMethodQuery",
397 Qt::DirectConnection,
398 Q_RETURN_ARG(QVariant, retval),
399 Q_ARG(Qt::InputMethodQuery, query),
400 Q_ARG(QVariant, argument));
402 if (retval.isValid())
409 QInputMethodQueryEvent queryEvent(query);
410 QCoreApplication::sendEvent(focusObject, &queryEvent);
411 return queryEvent.value(query);