summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFedja Beader <fedja@protonmail.ch>2025-07-08 20:08:44 +0000
committerFedja Beader <fedja@protonmail.ch>2025-07-08 20:08:44 +0000
commit0ee0dce2d35a9d606f91ff5e217cbe5feca63cdb (patch)
tree61c130a90d2f26dfc6fe5775ca63cb1c7ed10b66 /src
parentc824be5b62a18de538ab93b2c8f3b33ecdb5eec2 (diff)
downloadplus-0ee0dce2d35a9d606f91ff5e217cbe5feca63cdb.tar.gz
plus-0ee0dce2d35a9d606f91ff5e217cbe5feca63cdb.tar.bz2
plus-0ee0dce2d35a9d606f91ff5e217cbe5feca63cdb.tar.xz
plus-0ee0dce2d35a9d606f91ff5e217cbe5feca63cdb.zip
Fix crash when deleting last mail and then pressing delete again
**** mana/verse!208
Diffstat (limited to 'src')
-rw-r--r--src/gui/windows/mailwindow.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gui/windows/mailwindow.cpp b/src/gui/windows/mailwindow.cpp
index 4f5f9cac5..da5192aee 100644
--- a/src/gui/windows/mailwindow.cpp
+++ b/src/gui/windows/mailwindow.cpp
@@ -255,6 +255,13 @@ void MailWindow::removeMail(const int64_t id)
if (message != nullptr)
mMailModel->add(getMailHeader(message));
}
+
+ // if player deleted the selected mail, then selection does not change
+ // (selects next one in list). However, if they deleted the last one,
+ // then we go to the previous one in list.
+ const auto lastIndex = mMailModel->getNumberOfElements() - 1;
+ if (mListBox->getSelected() > lastIndex)
+ mListBox->setSelected(lastIndex);
}
void MailWindow::showMessage(MailMessage *const mail,