diff --git a/src/filewidgets/kfilewidget.cpp b/src/filewidgets/kfilewidget.cpp --- a/src/filewidgets/kfilewidget.cpp +++ b/src/filewidgets/kfilewidget.cpp @@ -2115,10 +2115,16 @@ { // qDebug(); - urlNavigator->setUrlEditable(!urlNavigator->isUrlEditable()); - if (urlNavigator->isUrlEditable()) { + QLineEdit* lineEdit = urlNavigator->editor()->lineEdit(); + + if (urlNavigator->isUrlEditable() + && lineEdit->hasFocus() + && lineEdit->selectedText() == lineEdit->text() ) { + urlNavigator->setUrlEditable(false); + } else { + urlNavigator->setUrlEditable(true); urlNavigator->setFocus(); - urlNavigator->editor()->lineEdit()->selectAll(); + lineEdit->selectAll(); } }