From c3b9992e102885ac0a6e6e5c5d7ea2c8ee1e323a Mon Sep 17 00:00:00 2001 From: Sergey Pak Date: Wed, 12 Feb 2025 17:58:23 +0100 Subject: [PATCH] [settingsDialog] IJPL-176500 - fix scrolling GitOrigin-RevId: eea5747fd608da987530427cd00b5dc09b2b8534 --- .../openapi/options/newEditor/SettingsEditor.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsEditor.java b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsEditor.java index 4b9aff6ad2f40..4b69e8c406c23 100644 --- a/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsEditor.java +++ b/platform/platform-impl/src/com/intellij/openapi/options/newEditor/SettingsEditor.java @@ -28,6 +28,7 @@ import com.intellij.ui.OnePixelSplitter; import com.intellij.ui.SearchTextField; import com.intellij.ui.UIBundle; +import com.intellij.ui.components.JBScrollPane; import com.intellij.ui.components.panels.VerticalLayout; import com.intellij.ui.navigation.History; import com.intellij.ui.navigation.Place; @@ -251,7 +252,7 @@ void openLink(Configurable configurable) { settings.select(configurable); } }; - editor.setPreferredSize(JBUI.size(800, 600)); + loadingDecorator = new LoadingDecorator(editor, this, 10, true); loadingDecorator.setOverlayBackground(LoadingDecorator.OVERLAY_BACKGROUND); myBanner = new Banner(editor.getResetAction()); @@ -277,6 +278,14 @@ void openLink(Configurable configurable) { if (IdeFrameDecorator.Companion.isCustomDecorationActive()) { mySplitter.getDivider().setOpaque(false); } + if (SettingsDialog.useNonModalSettingsWindow()) { + mySplitter.setDividerPositionStrategy(Splitter.DividerPositionStrategy.KEEP_FIRST_SIZE); + mySplitter.setHonorComponentsPreferredSize(true); + add(BorderLayout.CENTER, new JBScrollPane(mySplitter)); + } else { + editor.setPreferredSize(JBUI.size(800, 600)); + add(BorderLayout.CENTER, mySplitter); + } spotlightPainter = spotlightPainterFactory.createSpotlightPainter(project, editor, this, (painter) -> { Configurable currentConfigurable = this.filter.context.getCurrentConfigurable(); @@ -285,7 +294,6 @@ void openLink(Configurable configurable) { } return Unit.INSTANCE; }); - add(BorderLayout.CENTER, mySplitter); if (configurable == null) { String id = properties.getValue(SELECTED_CONFIGURABLE);