fix(jetbrains): restore settings header right inset

This commit is contained in:
kirillk
2026-07-20 17:25:44 -04:00
parent c534649754
commit 45b58eade6
5 changed files with 24 additions and 4 deletions
@@ -15,7 +15,6 @@ import com.intellij.ui.SearchTextField
import com.intellij.util.concurrency.annotations.RequiresEdt
import com.intellij.util.ui.JBUI
import kotlinx.coroutines.CoroutineScope
import java.awt.BorderLayout
import javax.swing.event.DocumentEvent
internal class AutoApproveSettingsUi(
@@ -38,7 +37,7 @@ internal class AutoApproveSettingsUi(
search.textEditor.document.addDocumentListener(object : DocumentAdapter() {
override fun textChanged(e: DocumentEvent) = form.filter(search.text)
})
content.add(search, BorderLayout.NORTH)
setHeader(search)
startSettings(AutoApproveContent({ updateDraft(it) }, picker))
}
@@ -65,7 +65,7 @@ internal abstract class SettingsListPanel(
checkEdt()
search.textEditor.emptyText.text = searchPlaceholder()
view.setEmptyText(emptyText())
content.add(header(), BorderLayout.NORTH)
setHeader(header())
setContent(view)
}
@@ -9,6 +9,7 @@ import java.awt.BorderLayout
import java.awt.Dimension
import java.awt.Rectangle
import javax.swing.JComponent
import javax.swing.JPanel
import javax.swing.ScrollPaneConstants
import javax.swing.Scrollable
@@ -50,6 +51,14 @@ internal open class SettingsPanel(scroll: Boolean = true, pad: Boolean = true) :
repaint()
}
fun setHeader(component: JComponent) {
val header = JPanel(BorderLayout())
header.isOpaque = false
header.border = JBUI.Borders.emptyRight(UiStyle.Gap.xl())
header.add(component, BorderLayout.CENTER)
content.add(header, BorderLayout.NORTH)
}
}
private class SettingsBody : Stack(StackAxis.VERTICAL), Scrollable {
@@ -150,7 +150,7 @@ internal class ProvidersSettingsUi(
private var oauth: DeviceOAuthPanel? = null
init {
content.add(header(), BorderLayout.NORTH)
setHeader(header())
setContent(view)
reload()
}
@@ -6,6 +6,7 @@ import com.intellij.ui.SeparatorComponent
import com.intellij.ui.components.JBLabel
import java.awt.Color
import java.awt.Container
import java.awt.BorderLayout
import java.awt.Rectangle
import java.awt.image.BufferedImage
import javax.swing.AbstractButton
@@ -134,6 +135,17 @@ class SettingsRowsTest : BasePlatformTestCase() {
assertTrue((view as Scrollable).getScrollableTracksViewportWidth())
}
fun `test settings panel header gets right inset outside scroll`() {
val panel = SettingsPanel()
val field = javax.swing.JTextField()
panel.setHeader(field)
val header = (panel.content.layout as BorderLayout).getLayoutComponent(BorderLayout.NORTH) as JComponent
assertEquals(UiStyle.Gap.xl(), header.insets.right)
assertTrue(components(header).any { it === field })
}
fun `test settings progress overlay is centered near top`() {
val panel = SettingsPanel().apply { setSize(400, 300) }