diff options
Diffstat (limited to 'src/platformsupport')
-rw-r--r-- | src/platformsupport/linuxaccessibility/atspiadaptor.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp index 0b3a0a6834..f9d2f21b0c 100644 --- a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp +++ b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp @@ -2069,7 +2069,10 @@ bool AtSpiAdaptor::editableTextInterface(QAccessibleInterface *interface, const connection.send(message.createReply(true)); } else if (function == QLatin1String("SetTextContents")) { QString newContents = message.arguments().at(0).toString(); - interface->editableTextInterface()->replaceText(0, interface->textInterface()->characterCount(), newContents); + if (QAccessibleEditableTextInterface *editableTextIface = interface->editableTextInterface()) + editableTextIface->replaceText(0, interface->textInterface()->characterCount(), newContents); + else + replaceTextFallback(interface, 0, -1, newContents); connection.send(message.createReply(true)); } else if (function == QLatin1String("")) { connection.send(message.createReply()); @@ -2083,23 +2086,27 @@ bool AtSpiAdaptor::editableTextInterface(QAccessibleInterface *interface, const // Value interface bool AtSpiAdaptor::valueInterface(QAccessibleInterface *interface, const QString &function, const QDBusMessage &message, const QDBusConnection &connection) { + QAccessibleValueInterface *valueIface = interface->valueInterface(); + if (!valueIface) + return false; + if (function == QLatin1String("SetCurrentValue")) { QDBusVariant v = message.arguments().at(2).value<QDBusVariant>(); double value = v.variant().toDouble(); //Temporary fix //See https://bugzilla.gnome.org/show_bug.cgi?id=652596 - interface->valueInterface()->setCurrentValue(value); + valueIface->setCurrentValue(value); connection.send(message.createReply()); // FIXME is the reply needed? } else { QVariant value; if (function == QLatin1String("GetCurrentValue")) - value = interface->valueInterface()->currentValue(); + value = valueIface->currentValue(); else if (function == QLatin1String("GetMaximumValue")) - value = interface->valueInterface()->maximumValue(); + value = valueIface->maximumValue(); else if (function == QLatin1String("GetMinimumIncrement")) - value = interface->valueInterface()->minimumStepSize(); + value = valueIface->minimumStepSize(); else if (function == QLatin1String("GetMinimumValue")) - value = interface->valueInterface()->minimumValue(); + value = valueIface->minimumValue(); else { qAtspiDebug() << "WARNING: AtSpiAdaptor::valueInterface does not implement " << function << message.path(); return false; |