commit b13685d9bb3ce6db8f285f1c92abbe6b8bf90d2c
Author: Juergen Spitzmueller <sp...@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();
 }
 
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to