mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-01 05:15:43 +02:00
Target Explorer: A process redirected to a terminal cannot be reconnected once the process terminated
This commit is contained in:
parent
ef371f478b
commit
ad9890ef85
3 changed files with 6 additions and 5 deletions
|
@ -105,8 +105,6 @@ public interface ITerminalsConnectorConstants {
|
|||
/**
|
||||
* Property: Data flag to tell the terminal to not reconnect when hitting enter
|
||||
* in a disconnected terminal.
|
||||
* The flag can be set by adding an IPropertiesContainer with the set
|
||||
* flag as PROP_DATA.
|
||||
* <p>
|
||||
* Property Type: {@link Boolean}
|
||||
*/
|
||||
|
|
|
@ -302,6 +302,9 @@ public class TerminalService implements ITerminalService {
|
|||
if (properties.get(ITerminalsConnectorConstants.PROP_FORCE_NEW) instanceof Boolean) {
|
||||
flags.put(ITerminalsConnectorConstants.PROP_FORCE_NEW, (Boolean)properties.get(ITerminalsConnectorConstants.PROP_FORCE_NEW));
|
||||
}
|
||||
if (properties.get(ITerminalsConnectorConstants.PROP_DATA_NO_RECONNECT) instanceof Boolean) {
|
||||
flags.put(ITerminalsConnectorConstants.PROP_DATA_NO_RECONNECT, (Boolean)properties.get(ITerminalsConnectorConstants.PROP_DATA_NO_RECONNECT));
|
||||
}
|
||||
// Open the new console
|
||||
CTabItem item;
|
||||
if (secondaryId != null)
|
||||
|
|
|
@ -237,7 +237,7 @@ public class TabFolderManager extends PlatformObject implements ISelectionProvid
|
|||
*
|
||||
* @return The created tab item or <code>null</code> if failed.
|
||||
*/
|
||||
@SuppressWarnings({ "unused", "unchecked" })
|
||||
@SuppressWarnings("unused")
|
||||
public CTabItem createTabItem(String title, String encoding, ITerminalConnector connector, Object data, Map<String, Boolean> flags) {
|
||||
Assert.isNotNull(title);
|
||||
Assert.isNotNull(connector);
|
||||
|
@ -272,8 +272,8 @@ public class TabFolderManager extends PlatformObject implements ISelectionProvid
|
|||
|
||||
// Create the terminal control
|
||||
ITerminalViewControl terminal = TerminalViewControlFactory.makeControl(doCreateTerminalTabTerminalListener(this, item), composite, new ITerminalConnector[] { connector }, true);
|
||||
if (terminal instanceof ITerminalControl && data instanceof Map<?,?>) {
|
||||
Object value = ((Map<String, Object>)data).get(ITerminalsConnectorConstants.PROP_DATA_NO_RECONNECT);
|
||||
if (terminal instanceof ITerminalControl && flags.containsKey(ITerminalsConnectorConstants.PROP_DATA_NO_RECONNECT)) {
|
||||
Object value = flags.get(ITerminalsConnectorConstants.PROP_DATA_NO_RECONNECT);
|
||||
boolean noReconnect = value instanceof Boolean ? ((Boolean)value).booleanValue() : false;
|
||||
((ITerminalControl)terminal).setConnectOnEnterIfClosed(!noReconnect);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue