[search] Do not update text input when it has focus

When the user is entering a search term, a delayed search will be
emmited after a few seconds. This means updating the search URL, which
in turn gets parsed and reflected back on the search input.

To avoid interrupting the user input flow and unexpectedly move the
cursor to the end, let's update the input search box only when it
doesn't have the focus.

It's still updated on other interactions such as changing the search
options or clicking a saved search on the places panel.

BUG: 423328
FIXED-IN: 20.08
This commit is contained in:
Ismael Asensio 2020-07-04 15:42:55 +02:00 committed by Elvis Angelaccio
parent 275d7b537d
commit ec03435022

View file

@ -520,7 +520,10 @@ void DolphinSearchBox::updateFromQuery(const DolphinQuery& query)
setSearchPath(QUrl::fromLocalFile(QDir::homePath()));
}
setText(query.text());
// If the input box has focus, do not update to avoid messing with user typing
if (!m_searchInput->hasFocus()) {
setText(query.text());
}
if (query.hasContentSearch()) {
m_contentButton->setChecked(true);