From b4645626f1899f479d975ad0da73a2e765c71b9f Mon Sep 17 00:00:00 2001 From: Liudmila Kornilova Date: Tue, 30 Sep 2025 14:58:48 +0200 Subject: [PATCH] IJPL-198980 Don't show two loading icons in SE (dumb mode and searching) GitOrigin-RevId: 521ef6fe1f63bb1ebe0a56b13c55a4849d800173 --- .../ide/actions/searcheverywhere/HintHelper.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/HintHelper.kt b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/HintHelper.kt index 47e07b27fcc8..a2a13110d5b0 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/HintHelper.kt +++ b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/HintHelper.kt @@ -27,6 +27,8 @@ class HintHelper(private val myTextField: ExtendableTextField) { private var myExtensionWithLoadingText: ExtendableTextComponent.Extension? = null private val myRightExtensions: MutableList = ArrayList() + private var myIsSearchInProgress = false + init { myText.setFont(myTextField.getFont()) myText.setFontTransform(FontInfo.getFontRenderContext(myTextField).transform) @@ -40,15 +42,18 @@ class HintHelper(private val myTextField: ExtendableTextField) { fun setHint(hintText: String?) { myTextField.removeExtension(myExtensionWithHintText) myExtensionWithLoadingText?.let { myTextField.removeExtension(it) } + myExtensionWithLoadingText = null if (StringUtil.isNotEmpty(hintText)) { myText.setText(hintText) addExtensionAsLast(myExtensionWithHintText) } + if (myIsSearchInProgress) myTextField.addExtension(mySearchProcessExtension) } fun setLoadingText(text: String?, tooltip: @NlsContexts.Tooltip String? = null) { myTextField.removeExtension(myExtensionWithHintText) myExtensionWithLoadingText?.let { myTextField.removeExtension(it) } + myExtensionWithLoadingText = null if (StringUtil.isNotEmpty(text)) { myText.setText(text) myLoadingIcon.setIcon(myText, 1) @@ -57,12 +62,18 @@ class HintHelper(private val myTextField: ExtendableTextField) { override fun getTooltip(): @NlsContexts.Tooltip String? = tooltip } addExtensionAsLast(myExtensionWithLoadingText) + myTextField.removeExtension(mySearchProcessExtension) // don't duplicate loading icons } + else if (myIsSearchInProgress) myTextField.addExtension(mySearchProcessExtension) } fun setSearchInProgress(inProgress: Boolean) { + myIsSearchInProgress = inProgress + myTextField.removeExtension(mySearchProcessExtension) - if (inProgress) myTextField.addExtension(mySearchProcessExtension) + if (inProgress && myExtensionWithLoadingText == null) { + myTextField.addExtension(mySearchProcessExtension) + } } //set extension which should be shown last