diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-10 10:11:10 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-10 10:11:11 +0200 |
commit | f035786021e9f7b1d9512b22774bc15553caaedb (patch) | |
tree | c46a29ed3657944d9f36d8643a99fad469235bc4 /src/platformsupport/linuxaccessibility | |
parent | 72024fd50cdead8d890886dba32fd81ac54ff3ae (diff) | |
parent | 916c9d469bd0df227dc3be97fcca27e3cf58144f (diff) |
Merge remote-tracking branch 'origin/5.3' into dev
Change-Id: Ia12ffdb27ecdf25c2a2bdb0eed1945387502108a
Diffstat (limited to 'src/platformsupport/linuxaccessibility')
-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; |