commit ae5b4367d1e963353dfa5509a97ff40eb49b2c81
Author: Richard Kimberly Heck <rikih...@lyx.org>
Date:   Thu Jul 27 18:45:10 2023 -0400

    Fix bug #12235: Select text in search field on opening.
    
    Patch slightly modified from one by Daniel.
---
 src/frontends/qt/GuiSearch.cpp |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/frontends/qt/GuiSearch.cpp b/src/frontends/qt/GuiSearch.cpp
index 41900d1..3ca4f49 100644
--- a/src/frontends/qt/GuiSearch.cpp
+++ b/src/frontends/qt/GuiSearch.cpp
@@ -131,8 +131,13 @@ GuiSearchWidget::GuiSearchWidget(QWidget * parent, GuiView 
& view)
 
 bool GuiSearchWidget::initialiseParams(std::string const & str)
 {
-       if (!str.empty())
-               findCO->lineEdit()->setText(toqstr(str));
+       if (!str.empty()) {
+               // selectAll & insert rather than setText in order to keep undo 
stack
+               findCO->lineEdit()->selectAll();
+               findCO->lineEdit()->insert(toqstr(str));
+       }
+       findCO->setFocus();
+       findCO->lineEdit()->selectAll();
        return true;
 }
 
@@ -409,8 +414,6 @@ void GuiSearchWidget::wrapActTriggered()
 void GuiSearchWidget::showEvent(QShowEvent * e)
 {
        findChanged();
-       findPB->setFocus();
-       findCO->lineEdit()->selectAll();
        QWidget::showEvent(e);
 }
 
@@ -432,9 +435,9 @@ void GuiSearchWidget::findBufferChanged()
        // might end up in loops with search as you type)
        if (!search.empty() && toqstr(search) != findCO->lineEdit()->text()) {
                LYXERR(Debug::CLIPBOARD, "from findbuffer: " << search);
+               // selectAll & insert rather than setText in order to keep undo 
stack
                findCO->lineEdit()->selectAll();
                findCO->lineEdit()->insert(toqstr(search));
-               findCO->lineEdit()->selectAll();
        }
 }
 
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to