From aae4c6c1fa0e9e1418f3ff5b2f8529c536619c27 Mon Sep 17 00:00:00 2001
From: Daniil Ovchinnikov <daniil.ovchinnikov@jetbrains.com>
Date: Wed, 26 Oct 2022 22:15:43 +0200
Subject: [PATCH] IDEA-299807 support select in navigation bar target

GitOrigin-RevId: 2c31982a34a6e167604e760cdd24f035ad6a048e
---
 .../src/com/intellij/ide/navbar/ide/NavBarService.kt |  4 ++++
 .../ide/navigationToolbar/SelectInNavBarTarget.java  | 12 +++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarService.kt b/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarService.kt
index d41199b9d49b..2b18bfd30ea0 100644
--- a/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarService.kt
+++ b/platform/lang-impl/src/com/intellij/ide/navbar/ide/NavBarService.kt
@@ -64,6 +64,10 @@ internal class NavBarService(private val project: Project) : Disposable {
     }
   }
 
+  fun selectTail() {
+    staticNavBarVm.vm.value?.selectTail()
+  }
+
   private fun showFloatingNavbar(dataContext: DataContext) {
     cs.launch(ModalityState.current().asContextElement()) {
       val model = contextModel(dataContext, project).ifEmpty {
diff --git a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/SelectInNavBarTarget.java b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/SelectInNavBarTarget.java
index b918f0b3fb81..ecca5b217f58 100644
--- a/platform/lang-impl/src/com/intellij/ide/navigationToolbar/SelectInNavBarTarget.java
+++ b/platform/lang-impl/src/com/intellij/ide/navigationToolbar/SelectInNavBarTarget.java
@@ -6,6 +6,7 @@ import com.intellij.ide.IdeBundle;
 import com.intellij.ide.StandardTargetWeights;
 import com.intellij.ide.impl.SelectInTargetPsiWrapper;
 import com.intellij.ide.navbar.ide.NavBarIdeUtil;
+import com.intellij.ide.navbar.ide.NavBarService;
 import com.intellij.ide.ui.UISettings;
 import com.intellij.openapi.actionSystem.DataContext;
 import com.intellij.openapi.project.DumbAware;
@@ -39,19 +40,24 @@ final class SelectInNavBarTarget extends SelectInTargetPsiWrapper implements Dum
 
   @Override
   protected boolean canSelect(final PsiFileSystemItem file) {
-    if (NavBarIdeUtil.isNavbarV2Enabled()) {
-      return false;
-    }
     return UISettings.getInstance().getShowNavigationBar();
   }
 
   @Override
   protected void select(final Object selector, final VirtualFile virtualFile, final boolean requestFocus) {
+    if (NavBarIdeUtil.isNavbarV2Enabled()) {
+      NavBarService.getInstance(myProject).selectTail();
+      return;
+    }
     selectInNavBar(false);
   }
 
   @Override
   protected void select(final PsiElement element, boolean requestFocus) {
+    if (NavBarIdeUtil.isNavbarV2Enabled()) {
+      NavBarService.getInstance(myProject).selectTail();
+      return;
+    }
     selectInNavBar(false);
   }
 
-- 
GitLab