From b587e4186497b1f65c5499b2b22c37babb305a09 Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Tue, 23 Apr 2019 15:46:22 +0200 Subject: 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 --- src/quicktemplates2/qquickscrollbar.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 #include +#if QT_CONFIG(accessibility) +#include +#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 -- cgit v1.2.3