diff --git a/src/main/kotlin/app/termora/highlight/ChooseColorTemplateDialog.kt b/src/main/kotlin/app/termora/highlight/ChooseColorTemplateDialog.kt index 2c52a87..229a3b0 100644 --- a/src/main/kotlin/app/termora/highlight/ChooseColorTemplateDialog.kt +++ b/src/main/kotlin/app/termora/highlight/ChooseColorTemplateDialog.kt @@ -51,6 +51,7 @@ class ChooseColorTemplateDialog(owner: Window, title: String) : DialogWrapper(ow val customBtn = JButton("Custom") customBtn.addActionListener { val dialog = MyColorPickerDialog(this) + dialog.setLocationRelativeTo(this) dialog.colorPicker.color = defaultColor dialog.isVisible = true val color = dialog.color diff --git a/src/main/kotlin/app/termora/highlight/NewKeywordHighlightDialog.kt b/src/main/kotlin/app/termora/highlight/NewKeywordHighlightDialog.kt index e99b8fd..2bb15bf 100644 --- a/src/main/kotlin/app/termora/highlight/NewKeywordHighlightDialog.kt +++ b/src/main/kotlin/app/termora/highlight/NewKeywordHighlightDialog.kt @@ -185,6 +185,7 @@ class NewKeywordHighlightDialog( } private fun createColorPanel(color: Color, title: String): ColorPanel { + val owner = this val arc = UIManager.getInt("Component.arc") val lineBorder = FlatLineBorder(Insets(1, 1, 1, 1), DynamicColor.BorderColor, 1f, arc) val colorPanel = ColorPanel(color) @@ -193,7 +194,8 @@ class NewKeywordHighlightDialog( colorPanel.addMouseListener(object : MouseAdapter() { override fun mouseClicked(e: MouseEvent) { if (SwingUtilities.isLeftMouseButton(e)) { - val dialog = ChooseColorTemplateDialog(this@NewKeywordHighlightDialog, title) + val dialog = ChooseColorTemplateDialog(owner, title) + dialog.setLocationRelativeTo(owner) dialog.defaultColor = colorPanel.color dialog.isVisible = true colorPanel.color = dialog.color ?: return diff --git a/src/main/kotlin/app/termora/terminal/panel/vw/VisualWindowPanel.kt b/src/main/kotlin/app/termora/terminal/panel/vw/VisualWindowPanel.kt index aee484f..5ccee1a 100644 --- a/src/main/kotlin/app/termora/terminal/panel/vw/VisualWindowPanel.kt +++ b/src/main/kotlin/app/termora/terminal/panel/vw/VisualWindowPanel.kt @@ -2,10 +2,12 @@ package app.termora.terminal.panel.vw import app.termora.* import com.formdev.flatlaf.extras.components.FlatToolBar +import com.formdev.flatlaf.util.SystemInfo import java.awt.* import java.awt.event.* import java.beans.PropertyChangeEvent import java.beans.PropertyChangeListener +import javax.imageio.ImageIO import javax.swing.* import kotlin.math.max import kotlin.math.min @@ -333,6 +335,15 @@ open class VisualWindowPanel(protected val id: String, protected val visualWindo title = getWindowTitle() isAlwaysOnTop = isAlwaysTop + if (SystemInfo.isWindows || SystemInfo.isLinux) { + val sizes = listOf(16, 20, 24, 28, 32, 48, 64) + val loader = TermoraFrame::class.java.classLoader + val images = sizes.mapNotNull { e -> + loader.getResourceAsStream("icons/termora_${e}x${e}.png")?.use { ImageIO.read(it) } + } + iconImages = images + } + initEvents() init()