chore: remember the colspan state of the fence layout

This commit is contained in:
hstyi
2025-08-09 14:53:03 +08:00
committed by hstyi
parent 3fa4064655
commit 6e182b6813

View File

@@ -72,10 +72,12 @@ class TermoraFencePanel(
leftTreePanel.addComponentListener(object : ComponentAdapter() { leftTreePanel.addComponentListener(object : ComponentAdapter() {
override fun componentHidden(e: ComponentEvent) { override fun componentHidden(e: ComponentEvent) {
toolbar.isVisible = true toolbar.isVisible = true
enableManager.setFlag("Termora.Fence.colspan", true)
} }
override fun componentShown(e: ComponentEvent) { override fun componentShown(e: ComponentEvent) {
toolbar.isVisible = false toolbar.isVisible = false
enableManager.setFlag("Termora.Fence.colspan", false)
} }
}) })
@@ -86,6 +88,16 @@ class TermoraFencePanel(
toolkit.menuShortcutKeyMaskEx or KeyEvent.SHIFT_DOWN_MASK toolkit.menuShortcutKeyMaskEx or KeyEvent.SHIFT_DOWN_MASK
), "toggle" ), "toggle"
) )
splitPane.addPropertyChangeListener("dividerLocation") {
if (leftTreePanel.isVisible)
enableManager.setFlag("Termora.Fence.dividerLocation", max(splitPane.dividerLocation, 10))
}
if (enableManager.getFlag("Termora.Fence.colspan", false)) {
toggle()
}
} }
private inner class LeftTreePanel : JPanel(BorderLayout()), Disposable { private inner class LeftTreePanel : JPanel(BorderLayout()), Disposable {
@@ -144,19 +156,19 @@ class TermoraFencePanel(
} }
override fun actionPerformed(evt: AnActionEvent) { override fun actionPerformed(evt: AnActionEvent) {
if (leftTreePanel.isVisible) dividerLocation = splitPane.dividerLocation toggle()
leftTreePanel.isVisible = leftTreePanel.isVisible.not()
if (leftTreePanel.isVisible) splitPane.dividerLocation = dividerLocation
} }
} }
} }
private fun toggle() {
override fun dispose() { if (leftTreePanel.isVisible) dividerLocation = splitPane.dividerLocation
if (leftTreePanel.isVisible) leftTreePanel.isVisible = leftTreePanel.isVisible.not()
enableManager.setFlag("Termora.Fence.dividerLocation", max(splitPane.dividerLocation, 10)) if (leftTreePanel.isVisible) splitPane.dividerLocation = dividerLocation
mySplitPane.doLayout()
} }
fun getHostTree(): NewHostTree { fun getHostTree(): NewHostTree {
return leftTreePanel.hostTree return leftTreePanel.hostTree
} }