From c5ba8a56e7f0144d2a74665b4fa459fd45ceedd6 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Thu, 14 Nov 2013 09:08:29 +0100 Subject: [PATCH] Do not select items when navigating back/forward with the mouse If we detect that the user pressed the back/forward buttons while hovering the empty space of the view, such that DolphinView::slotMouseButtonPressed(int, Qt::MouseButtons) will request that Dolphin navigates back/forward in the history, handling the mouse press event should stop. This prevents the possible unexpected selection of items in the new directory. BUG: 327412 FIXED-IN: 4.11.4 --- src/kitemviews/kitemlistcontroller.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index 9335ab816..158c12de1 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -537,6 +537,14 @@ bool KItemListController::mousePressEvent(QGraphicsSceneMouseEvent* event, const m_pressedIndex = m_view->itemAt(m_pressedMousePos); emit mouseButtonPressed(m_pressedIndex, event->buttons()); + if ((event->buttons() & (Qt::XButton1 | Qt::XButton2)) && m_pressedIndex < 0) { + // Do not select items when clicking the empty part of the view with + // the back/forward buttons, see https://bugs.kde.org/show_bug.cgi?id=327412. + // Note that clicking an item with these buttons selects it, see comment in + // DolphinView::slotMouseButtonPressed(int, Qt::MouseButtons). + return true; + } + if (m_view->isAboveExpansionToggle(m_pressedIndex, m_pressedMousePos)) { m_selectionManager->endAnchoredSelection(); m_selectionManager->setCurrentItem(m_pressedIndex); -- 2.47.3