]> git.lyx.org Git - features.git/commitdiff
Fix bug #12235: Select text in search field on opening.
authorRichard Kimberly Heck <rikiheck@lyx.org>
Thu, 27 Jul 2023 22:45:10 +0000 (18:45 -0400)
committerRichard Kimberly Heck <rikiheck@lyx.org>
Fri, 28 Jul 2023 16:07:23 +0000 (12:07 -0400)
Patch slightly modified from one by Daniel.

src/frontends/qt/GuiSearch.cpp

index 41900d1a053dd600d025663a3053a85f8c132da9..3ca4f4904d649bacfcf1cf44cb80791275a733b9 100644 (file)
@@ -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();
        }
 }