[UI, TW] IJPL-242950 Remove the Show Toolbar action

Remove the action itself.

Make the TW setToolbarVisible overload no-op,
so the toolbars retain their initial visibility
(and they should be visible by default).

Make the TW overload of isToolbarVisible
always return true to indicate the new behavior.

Reviewed at IJ-CR-209740.

(cherry picked from commit ba486b06af049ad87f3226e44829f6bda5ee7d42)

GitOrigin-RevId: 6955cb859f6e595f95f57c6c911b2320556c20fc
This commit is contained in:
Sergei Tachenov
2026-08-07 08:58:50 +00:00
committed by intellij-monorepo-bot
parent 0f3f018096
commit 558fbf6029
3 changed files with 12 additions and 63 deletions
@@ -1052,7 +1052,6 @@ f:com.intellij.ide.actions.TogglePresentationModeAction
f:com.intellij.ide.actions.ToggleToolbarAction
- s:createAction(java.lang.String,com.intellij.ide.util.PropertiesComponent,java.util.function.Supplier):com.intellij.ide.actions.ToggleToolbarAction
- s:createToggleToolbarGroup(com.intellij.openapi.project.Project,com.intellij.openapi.wm.ToolWindow):com.intellij.openapi.actionSystem.DefaultActionGroup
- s:createToolWindowAction(com.intellij.openapi.wm.ToolWindow,com.intellij.ide.util.PropertiesComponent):com.intellij.ide.actions.ToggleToolbarAction
- getActionUpdateThread():com.intellij.openapi.actionSystem.ActionUpdateThread
- isSelected(com.intellij.openapi.actionSystem.AnActionEvent):Z
- s:isToolbarVisible(com.intellij.openapi.wm.ToolWindow):Z
@@ -1066,7 +1065,6 @@ f:com.intellij.ide.actions.ToggleToolbarAction
- s:setToolbarVisible(java.lang.Iterable,Z):V
- s:setToolbarVisible(java.lang.String,com.intellij.ide.util.PropertiesComponent,java.lang.Iterable,java.lang.Boolean):V
- update(com.intellij.openapi.actionSystem.AnActionEvent):V
- s:updateToolbarVisibility(com.intellij.openapi.wm.ToolWindow,com.intellij.openapi.actionSystem.ActionToolbar,com.intellij.ide.util.PropertiesComponent):V
c:com.intellij.ide.actions.ToolWindowTabRenameActionBase
- <init>(java.lang.String,java.lang.String):V
- actionPerformed(com.intellij.openapi.actionSystem.AnActionEvent,com.intellij.openapi.wm.ToolWindow,com.intellij.ui.content.Content):V
@@ -22,9 +22,6 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.ui.content.Content;
import com.intellij.ui.content.ContentManager;
import com.intellij.ui.content.ContentManagerEvent;
import com.intellij.ui.content.ContentManagerListener;
import com.intellij.ui.content.impl.ContentManagerImpl;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.JBIterable;
import com.intellij.util.ui.UIUtil;
@@ -44,9 +41,9 @@ import java.util.function.Supplier;
* @author gregsh
*/
public final class ToggleToolbarAction extends ToggleAction implements DumbAware {
@SuppressWarnings("unused") // published API, can't change the signature
public static @NotNull DefaultActionGroup createToggleToolbarGroup(@NotNull Project project, @NotNull ToolWindow toolWindow) {
return new DefaultActionGroup(new OptionsGroup(toolWindow),
createToolWindowAction(toolWindow, PropertiesComponent.getInstance(project)));
return new DefaultActionGroup(new OptionsGroup(toolWindow));
}
public static @NotNull ToggleToolbarAction createAction(@NotNull String id,
@@ -55,52 +52,18 @@ public final class ToggleToolbarAction extends ToggleAction implements DumbAware
return new ToggleToolbarAction(properties, getShowToolbarProperty(id), components);
}
public static @NotNull ToggleToolbarAction createToolWindowAction(@NotNull ToolWindow toolWindow,
@NotNull PropertiesComponent properties) {
updateToolbarsVisibility(toolWindow, properties);
toolWindow.addContentManagerListener(new ContentManagerListener() {
@Override
public void contentAdded(@NotNull ContentManagerEvent event) {
JComponent component = event.getContent().getComponent();
setToolbarVisible(Collections.singletonList(component), isToolbarVisible(toolWindow, properties));
// support nested content managers, e.g. RunnerLayoutUi as content component
ContentManager contentManager = ContentManagerImpl.getContentManager(component);
if (contentManager != null) {
contentManager.addContentManagerListener(this);
}
}
@Override
public void selectionChanged(@NotNull ContentManagerEvent event) {
if (event.getOperation() != ContentManagerEvent.ContentOperation.remove) {
updateToolbarsVisibility(toolWindow, properties);
}
}
});
return new ToggleToolbarAction(properties, getShowToolbarProperty(toolWindow), () -> {
ContentManager manager = toolWindow.getContentManagerIfCreated();
return ContainerUtil.createMaybeSingletonList(manager == null ? null : manager.getComponent());
});
}
private static void updateToolbarsVisibility(@NotNull ToolWindow toolWindow,
@NotNull PropertiesComponent properties) {
if (toolWindow.getContentManagerIfCreated() == null) return;
setToolbarVisible(Collections.singletonList(toolWindow.getComponent()), isToolbarVisible(toolWindow, properties));
}
public static void updateToolbarVisibility(@NotNull ToolWindow toolWindow,
@NotNull ActionToolbar toolbar,
@NotNull PropertiesComponent properties) {
setToolbarVisible(toolbar, isToolbarVisible(toolWindow, properties));
}
/**
* No-op since 2026.3.
* @param toolWindow
* @param properties
* @param visible
* @deprecated The Show Toolbar action is dropped in 2026.3, so toolbars are always visible.
*/
@Deprecated
@SuppressWarnings("unused") // published API, can't change the signature
public static void setToolbarVisible(@NotNull ToolWindow toolWindow,
@NotNull PropertiesComponent properties,
@Nullable Boolean visible) {
boolean state = visible == null ? isToolbarVisible(toolWindow, properties) : visible;
setToolbarVisibleImpl(getShowToolbarProperty(toolWindow), properties, Collections.singletonList(toolWindow.getComponent()), state);
}
public static void setToolbarVisible(@NotNull String id,
@@ -148,7 +111,7 @@ public final class ToggleToolbarAction extends ToggleAction implements DumbAware
}
public static boolean isToolbarVisible(@NotNull ToolWindow toolWindow, @NotNull PropertiesComponent properties) {
return isSelectedImpl(properties, getShowToolbarProperty(toolWindow));
return true;
}
private final PropertiesComponent myPropertiesComponent;
@@ -14,7 +14,6 @@ import com.intellij.ide.actions.ToolWindowMoveAction
import com.intellij.ide.actions.ToolwindowFusEventFields
import com.intellij.ide.impl.ContentManagerWatcher
import com.intellij.ide.ui.UISettings
import com.intellij.ide.util.PropertiesComponent
import com.intellij.idea.ActionsBundle
import com.intellij.internal.statistic.eventLog.events.EventPair
import com.intellij.openapi.Disposable
@@ -64,7 +63,6 @@ import com.intellij.toolWindow.InternalDecoratorImpl
import com.intellij.toolWindow.ToolWindowEventSource
import com.intellij.toolWindow.ToolWindowProperty
import com.intellij.ui.ClientProperty
import com.intellij.ui.ComponentTreeWatcher
import com.intellij.ui.ComponentUtil
import com.intellij.ui.ExperimentalUI
import com.intellij.ui.LayeredIcon
@@ -79,7 +77,6 @@ import com.intellij.ui.content.impl.ContentImpl
import com.intellij.ui.content.impl.ContentManagerImpl
import com.intellij.ui.content.tabs.TabbedContentAction
import com.intellij.ui.scale.JBUIScale
import com.intellij.util.ArrayUtil
import com.intellij.util.ModalityUiUtil
import com.intellij.util.SingleAlarm
import com.intellij.util.cancelOnDispose
@@ -299,15 +296,6 @@ private val LOG = logger<ToolWindowManagerImpl>()
onMovedOrResized()
}
})
object : ComponentTreeWatcher(ArrayUtil.EMPTY_CLASS_ARRAY) {
override fun processComponent(component: Component) {
if (component !is ActionToolbar) return
ToggleToolbarAction.updateToolbarVisibility(
this@ToolWindowImpl, component, PropertiesComponent.getInstance(project))
}
override fun unprocessComponent(component: Component) = Unit
}.register(decorator)
if (ExperimentalUI.isNewUI()) {
scrollPaneTracker = ScrollPaneTracker(container = decorator, filter = { true }) {
updateScrolledState()