sw/source/uibase/misc/redlndlg.cxx |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

New commits:
commit d16ac2a8ed46bdc0f20d49850b9c4989697acd49
Author:     Jim Raykowski <rayk...@gmail.com>
AuthorDate: Sun Jul 14 09:59:48 2024 -0800
Commit:     Jim Raykowski <rayk...@gmail.com>
CommitDate: Mon Jul 15 06:25:47 2024 +0200

    Resolves tdf#162018 Unexpected loss in focus in the "Manage Changes"
    
    window when adding a change in the document (Track changes mode)
    
    Change-Id: Iecb49346cfe5d4f447b07ec5451c753c90dddb44
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170460
    Tested-by: Jenkins
    Reviewed-by: Jim Raykowski <rayk...@gmail.com>

diff --git a/sw/source/uibase/misc/redlndlg.cxx 
b/sw/source/uibase/misc/redlndlg.cxx
index 26b40b917e50..178c2bc0f2e5 100644
--- a/sw/source/uibase/misc/redlndlg.cxx
+++ b/sw/source/uibase/misc/redlndlg.cxx
@@ -413,6 +413,10 @@ void SwRedlineAcceptDlg::Activate()
     if (!pSh)
         return;
 
+    // tdf#162018 keep the selected entry selected
+    weld::TreeView& rTreeView = m_pTable->GetWidget();
+    const OUString& rId = rTreeView.get_selected_id();
+
     SwRedlineTable::size_type nCount = pSh->GetRedlineCount();
 
     // check the number of pointers
@@ -477,7 +481,6 @@ void SwRedlineAcceptDlg::Activate()
     }
 
     // check comment
-    weld::TreeView& rTreeView = m_pTable->GetWidget();
     bool bIsShowChangesInMargin = 
SW_MOD()->GetUsrPref(false)->IsShowChangesInMargin();
     for (SwRedlineTable::size_type i = 0; i < nCount; i++)
     {
@@ -501,6 +504,12 @@ void SwRedlineAcceptDlg::Activate()
     }
 
     InitAuthors();
+
+    // tdf#162018 keep the selected entry selected
+    rTreeView.select_id(rId);
+    std::unique_ptr<weld::TreeIter> xEntry(rTreeView.make_iterator());
+    if (rTreeView.get_selected(xEntry.get()))
+        rTreeView.set_cursor(*xEntry);
 }
 
 void SwRedlineAcceptDlg::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& rHint)

Reply via email to