From c2f7c2aee046ca2d617f065c9091d5f24d541fbb Mon Sep 17 00:00:00 2001 From: Tim Martin Date: Wed, 12 Nov 2025 15:09:11 -0500 Subject: [PATCH] Patch for Issue #645 --- .../terminal/swing/SwingTerminalFrame.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/googlecode/lanterna/terminal/swing/SwingTerminalFrame.java b/src/main/java/com/googlecode/lanterna/terminal/swing/SwingTerminalFrame.java index af6706aa5..80b7245a7 100644 --- a/src/main/java/com/googlecode/lanterna/terminal/swing/SwingTerminalFrame.java +++ b/src/main/java/com/googlecode/lanterna/terminal/swing/SwingTerminalFrame.java @@ -106,7 +106,11 @@ public SwingTerminalFrame(String title, private SwingTerminalFrame(String title, SwingTerminal swingTerminal, TerminalEmulatorAutoCloseTrigger... autoCloseTriggers) { super(title != null ? title : "SwingTerminalFrame"); this.swingTerminal = swingTerminal; - this.autoCloseTriggers = EnumSet.copyOf(Arrays.asList(autoCloseTriggers)); + if (autoCloseTriggers != null && autoCloseTriggers.length > 0) + { + this.autoCloseTriggers = EnumSet.copyOf(Arrays.asList(autoCloseTriggers)); + } + else this.autoCloseTriggers = null; this.disposed = false; getContentPane().setLayout(new BorderLayout()); @@ -228,9 +232,11 @@ public KeyStroke pollInput() { return new KeyStroke(KeyType.EOF); } KeyStroke keyStroke = swingTerminal.pollInput(); - if(autoCloseTriggers.contains(TerminalEmulatorAutoCloseTrigger.CLOSE_ON_ESCAPE) && - keyStroke != null && - keyStroke.getKeyType() == KeyType.ESCAPE) { + if(autoCloseTriggers != null && + autoCloseTriggers.contains(TerminalEmulatorAutoCloseTrigger.CLOSE_ON_ESCAPE) && + keyStroke != null && + keyStroke.getKeyType() == KeyType.ESCAPE) + { dispose(); } return keyStroke; @@ -249,7 +255,9 @@ public void enterPrivateMode() { @Override public void exitPrivateMode() { swingTerminal.exitPrivateMode(); - if(autoCloseTriggers.contains(TerminalEmulatorAutoCloseTrigger.CLOSE_ON_EXIT_PRIVATE_MODE)) { + if(autoCloseTriggers != null && + autoCloseTriggers.contains(TerminalEmulatorAutoCloseTrigger.CLOSE_ON_EXIT_PRIVATE_MODE)) + { dispose(); } }