diff options
author | Mitch Curtis <mitch.curtis@qt.io> | 2019-04-23 15:46:22 +0200 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2019-04-24 09:03:39 +0000 |
commit | b587e4186497b1f65c5499b2b22c37babb305a09 (patch) | |
tree | f7dd1ca799e0b43568fecfb3c507675c95a8f570 | |
parent | cbb5abac4245ffaff6547c95ad2d56846ef8dd0b (diff) |
ScrollBar: fix value not changing when scrolling via VoiceOver
Connect to the QQuickAccessibleAttached::increaseAction() and
QQuickAccessibleAttached::decreaseAction() signals.
Change-Id: I9d6b37ac68d8790edcb3d4d72f155ec8511cabe2
Fixes: QTBUG-75072
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
-rw-r--r-- | src/quicktemplates2/qquickscrollbar.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/quicktemplates2/qquickscrollbar.cpp b/src/quicktemplates2/qquickscrollbar.cpp index 52daa27f..535151d6 100644 --- a/src/quicktemplates2/qquickscrollbar.cpp +++ b/src/quicktemplates2/qquickscrollbar.cpp @@ -40,6 +40,9 @@ #include <QtQml/qqmlinfo.h> #include <QtQuick/private/qquickflickable_p.h> +#if QT_CONFIG(accessibility) +#include <QtQuick/private/qquickaccessibleattached_p.h> +#endif QT_BEGIN_NAMESPACE @@ -724,8 +727,19 @@ void QQuickScrollBar::accessibilityActiveChanged(bool active) QQuickControl::accessibilityActiveChanged(active); Q_D(QQuickScrollBar); - if (active) + if (active) { setAccessibleProperty("pressed", d->pressed); + + if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this)) { + connect(accessibleAttached, &QQuickAccessibleAttached::increaseAction, this, &QQuickScrollBar::increase); + connect(accessibleAttached, &QQuickAccessibleAttached::decreaseAction, this, &QQuickScrollBar::decrease); + } + } else { + if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this)) { + disconnect(accessibleAttached, &QQuickAccessibleAttached::increaseAction, this, &QQuickScrollBar::increase); + disconnect(accessibleAttached, &QQuickAccessibleAttached::decreaseAction, this, &QQuickScrollBar::decrease); + } + } } QAccessible::Role QQuickScrollBar::accessibleRole() const |