From 261af5106c801a64287a36c8a79cbed9506788e9 Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Sun, 23 May 2021 16:12:47 -0400 Subject: [PATCH] Bug 573719: Display error on shell open failed Save shell before disposing control so error message has somewhere to go Change-Id: I3bcaa0e8f23a8c177309e72b6d9dfbb8afb72cf4 --- .../tm/terminal/connector/process/ProcessConnector.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessConnector.java b/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessConnector.java index 63721e7e1a5..7b519189445 100644 --- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessConnector.java +++ b/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessConnector.java @@ -30,6 +30,7 @@ import org.eclipse.core.runtime.Platform; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.custom.CTabItem; +import org.eclipse.swt.widgets.Shell; import org.eclipse.tm.internal.terminal.emulator.VT100Emulator; import org.eclipse.tm.internal.terminal.emulator.VT100TerminalControl; import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore; @@ -209,6 +210,8 @@ public class ProcessConnector extends AbstractStreamsConnector { } catch (IOException e) { // Disconnect right away disconnect(); + // Save the shell so the error message can have somewhere to display + Shell shell = control.getShell(); // Lookup the tab item CTabItem item = ConsoleManager.getInstance().findConsole(control); if (item != null) @@ -221,7 +224,7 @@ public class ProcessConnector extends AbstractStreamsConnector { // Repackage into a more user friendly error msg = NLS.bind(Messages.ProcessConnector_error_creatingProcess, settings.getImage(), msg); // Open an error dialog - MessageDialog.openError(control.getShell(), Messages.ProcessConnector_error_title, msg); + MessageDialog.openError(shell, Messages.ProcessConnector_error_title, msg); } }