Git commit f8e478b0c2e799971f6464289739b6d2c7c7a8aa by Jan Kundr?t. Committed on 04/11/2013 at 20:26. Pushed by jkt into branch 'master'.
GUI: Do not toggle the message read/unread on key up/down If the current column corresponds to the "seen indicator", key up/down would preserve that column which would cause an unexpected result. This special behavior shall work only as a result of an explicit mouse click. REVIEW: 113667 M +8 -3 src/Gui/MsgListView.cpp http://commits.kde.org/trojita/f8e478b0c2e799971f6464289739b6d2c7c7a8aa diff --git a/src/Gui/MsgListView.cpp b/src/Gui/MsgListView.cpp index 074e311..049084d 100644 --- a/src/Gui/MsgListView.cpp +++ b/src/Gui/MsgListView.cpp @@ -60,7 +60,7 @@ MsgListView::MsgListView(QWidget *parent): QTreeView(parent), m_autoActivateAfte m_naviActivationTimer = new QTimer(this); m_naviActivationTimer->setSingleShot(true); - connect (m_naviActivationTimer, SIGNAL(timeout()), SLOT(slotCurrentActivated())); + connect(m_naviActivationTimer, SIGNAL(timeout()), SLOT(slotCurrentActivated())); } // left might collapse a thread, question is whether ending there (on closing the thread) should be @@ -93,8 +93,13 @@ void MsgListView::keyReleaseEvent(QKeyEvent *ke) void MsgListView::slotCurrentActivated() { - if (currentIndex().isValid() && m_autoActivateAfterKeyNavigation) - emit activated(currentIndex()); + if (currentIndex().isValid() && m_autoActivateAfterKeyNavigation) { + // The "current index" is the one with that funny dot which only triggers the read/unread status toggle. + // If we don't do anything, subsequent pressing of key_up or key_down will move the cursor up/down one row + // while preserving the column which will lead to toggling the read/unread state of *that* message. + // That's unexpected; the key shall just move the cursor and change the current message. + emit activated(currentIndex().sibling(currentIndex().row(), Imap::Mailbox::MsgListModel::SUBJECT)); + } } int MsgListView::sizeHintForColumn(int column) const