case Qt::Key_Space:
if (m_selectionBehavior == MultiSelection) {
+#ifndef QT_NO_ACCESSIBILITY
+ // Move accessible focus to the item that is acted upon, so only the state change of this item is announced and not the whole view.
+ QAccessibleEvent accessibilityEvent(view(), QAccessible::Focus);
+ accessibilityEvent.setChild(index);
+ QAccessible::updateAccessibility(&accessibilityEvent);
+#endif
if (controlPressed) {
// Toggle the selection state of the current item.
m_selectionManager->endAnchoredSelection();
const QPointF pos = transform.map(event->pos());
const std::optional<int> index = m_view->itemAt(pos);
+ if (event->button() & (Qt::ForwardButton | Qt::BackButton)) {
+ // "Forward" and "Back" are reserved for quickly navigating through the
+ // history. Double-clicking those buttons should be interpreted as two
+ // separate button presses. We arrive here for the second click, which
+ // we now react to just as we would for a singular click
+ Q_EMIT mouseButtonPressed(index.value_or(-1), event->button());
+ return false;
+ }
+
if (!index.has_value()) {
Q_EMIT doubleClickViewBackground(event->button());
return false;
}
}
- if (event->button() & Qt::RightButton) {
+ if (event->button() & ~Qt::LeftButton) {
return false;
}