diff --git a/src/main/kotlin/app/termora/TermoraFencePanel.kt b/src/main/kotlin/app/termora/TermoraFencePanel.kt index 6c435d7..0452b0f 100644 --- a/src/main/kotlin/app/termora/TermoraFencePanel.kt +++ b/src/main/kotlin/app/termora/TermoraFencePanel.kt @@ -72,10 +72,12 @@ class TermoraFencePanel( leftTreePanel.addComponentListener(object : ComponentAdapter() { override fun componentHidden(e: ComponentEvent) { toolbar.isVisible = true + enableManager.setFlag("Termora.Fence.colspan", true) } override fun componentShown(e: ComponentEvent) { toolbar.isVisible = false + enableManager.setFlag("Termora.Fence.colspan", false) } }) @@ -86,6 +88,16 @@ class TermoraFencePanel( toolkit.menuShortcutKeyMaskEx or KeyEvent.SHIFT_DOWN_MASK ), "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 { @@ -144,19 +156,19 @@ class TermoraFencePanel( } override fun actionPerformed(evt: AnActionEvent) { - if (leftTreePanel.isVisible) dividerLocation = splitPane.dividerLocation - leftTreePanel.isVisible = leftTreePanel.isVisible.not() - if (leftTreePanel.isVisible) splitPane.dividerLocation = dividerLocation + toggle() } } } - - override fun dispose() { - if (leftTreePanel.isVisible) - enableManager.setFlag("Termora.Fence.dividerLocation", max(splitPane.dividerLocation, 10)) + private fun toggle() { + if (leftTreePanel.isVisible) dividerLocation = splitPane.dividerLocation + leftTreePanel.isVisible = leftTreePanel.isVisible.not() + if (leftTreePanel.isVisible) splitPane.dividerLocation = dividerLocation + mySplitPane.doLayout() } + fun getHostTree(): NewHostTree { return leftTreePanel.hostTree }