diff --git a/src/main/kotlin/app/termora/BackgroundManager.kt b/src/main/kotlin/app/termora/BackgroundManager.kt index 31706b2..1cb537d 100644 --- a/src/main/kotlin/app/termora/BackgroundManager.kt +++ b/src/main/kotlin/app/termora/BackgroundManager.kt @@ -5,6 +5,7 @@ import org.slf4j.LoggerFactory import java.awt.image.BufferedImage import java.io.File import javax.imageio.ImageIO +import javax.swing.JPopupMenu import javax.swing.SwingUtilities class BackgroundManager private constructor() { @@ -41,6 +42,23 @@ class BackgroundManager private constructor() { } fun getBackgroundImage(): BufferedImage? { + assertEventDispatchThread() + val bg = doGetBackgroundImage() + if (bg == null) { + if (JPopupMenu.getDefaultLightWeightPopupEnabled()) { + return null + } else { + JPopupMenu.setDefaultLightWeightPopupEnabled(true) + } + } else { + if (JPopupMenu.getDefaultLightWeightPopupEnabled()) { + JPopupMenu.setDefaultLightWeightPopupEnabled(false) + } + } + return bg + } + + private fun doGetBackgroundImage(): BufferedImage? { synchronized(this) { if (bufferedImage == null || imageFilepath.isEmpty()) { if (appearance.backgroundImage.isBlank()) { diff --git a/src/main/kotlin/app/termora/SettingsOptionsPane.kt b/src/main/kotlin/app/termora/SettingsOptionsPane.kt index 076d6c2..0c595e6 100644 --- a/src/main/kotlin/app/termora/SettingsOptionsPane.kt +++ b/src/main/kotlin/app/termora/SettingsOptionsPane.kt @@ -152,8 +152,14 @@ class SettingsOptionsPane : OptionsPane() { backgroundImageTextField.isEditable = false backgroundImageTextField.trailingComponent = backgroundButton backgroundImageTextField.text = FilenameUtils.getName(appearance.backgroundImage) + backgroundImageTextField.document.addDocumentListener(object : DocumentAdaptor() { + override fun changedUpdate(e: DocumentEvent) { + backgroundClearButton.isEnabled = backgroundImageTextField.text.isNotBlank() + } + }) backgroundClearButton.isFocusable = false + backgroundClearButton.isEnabled = backgroundImageTextField.text.isNotBlank() backgroundClearButton.icon = Icons.delete backgroundClearButton.buttonType = FlatButton.ButtonType.toolBarButton