[LyX/master] Prefer following, not previous, item in selection manager after deletion (#12871)
Juergen Spitzmueller
spitz at lyx.org
Mon Sep 18 06:45:12 UTC 2023
commit b13685d9bb3ce6db8f285f1c92abbe6b8bf90d2c
Author: Juergen Spitzmueller <spitz at lyx.org>
Date: Mon Sep 18 10:02:34 2023 +0200
Prefer following, not previous, item in selection manager after deletion (#12871)
---
src/frontends/qt/GuiSelectionManager.cpp | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/frontends/qt/GuiSelectionManager.cpp b/src/frontends/qt/GuiSelectionManager.cpp
index b5c34ee..d99cd23 100644
--- a/src/frontends/qt/GuiSelectionManager.cpp
+++ b/src/frontends/qt/GuiSelectionManager.cpp
@@ -309,17 +309,19 @@ void GuiSelectionManager::deletePB_clicked()
QModelIndex idx = selIdx.first();
int const row = idx.row();
- int nrows = selectedLV->model()->rowCount();
selectedModel->removeRow(row);
selectionChanged(); //signal
- // select previous item
- if (nrows > 0)
+ int nrows = selectedLV->model()->rowCount();
+
+ // select following item if one follows,
+ // otherwise use previous one if we have one
+ if (row < nrows)
+ selectedLV->setCurrentIndex(selectedLV->model()->index(row, 0));
+ else if (nrows > 0 && row > 0)
selectedLV->setCurrentIndex(selectedLV->model()->index(row - 1, 0));
- else if (nrows == 0)
- selectedLV->setCurrentIndex(selectedLV->model()->index(0, 0));
- selectedHasFocus_ = (nrows > 1);
+ selectedHasFocus_ = (nrows > 0);
updateHook();
}
More information about the lyx-cvs
mailing list