From a7410954a4159b3325ebefc2518da19709db7ac3 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 1 Jun 2021 13:06:17 +0200 Subject: [PATCH] fixed #427 --- src/librssguard/gui/messagesview.cpp | 8 ++++++-- src/librssguard/gui/messagesview.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/librssguard/gui/messagesview.cpp b/src/librssguard/gui/messagesview.cpp index ee544d0d6..4d79a7bf9 100644 --- a/src/librssguard/gui/messagesview.cpp +++ b/src/librssguard/gui/messagesview.cpp @@ -26,7 +26,8 @@ #include #include -MessagesView::MessagesView(QWidget* parent) : QTreeView(parent), m_contextMenu(nullptr), m_columnsAdjusted(false) { +MessagesView::MessagesView(QWidget* parent) + : QTreeView(parent), m_contextMenu(nullptr), m_columnsAdjusted(false), m_processingMouse(false) { m_sourceModel = qApp->feedReader()->messagesModel(); m_proxyModel = qApp->feedReader()->messagesProxyModel(); @@ -276,7 +277,9 @@ void MessagesView::initializeContextMenu() { } void MessagesView::mousePressEvent(QMouseEvent* event) { + m_processingMouse = true; QTreeView::mousePressEvent(event); + m_processingMouse = false; switch (event->button()) { case Qt::MouseButton::LeftButton: { @@ -347,7 +350,8 @@ void MessagesView::selectionChanged(const QItemSelection& selected, const QItemS emit currentMessageRemoved(); } - if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()) { + if (!m_processingMouse && + qApp->settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()) { scrollTo(currentIndex(), QAbstractItemView::ScrollHint::PositionAtCenter); } diff --git a/src/librssguard/gui/messagesview.h b/src/librssguard/gui/messagesview.h index 549ac29b2..4939bffaa 100644 --- a/src/librssguard/gui/messagesview.h +++ b/src/librssguard/gui/messagesview.h @@ -103,6 +103,7 @@ class MessagesView : public QTreeView { MessagesProxyModel* m_proxyModel; MessagesModel* m_sourceModel; bool m_columnsAdjusted; + bool m_processingMouse; }; inline MessagesProxyModel* MessagesView::model() const {