mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-14 04:25:21 +02:00
[236203] Applied patch from Michael Scharf.
This commit is contained in:
parent
0cf7a9093e
commit
2d6802e65f
1 changed files with 22 additions and 16 deletions
|
@ -17,6 +17,7 @@
|
||||||
* Anna Dushistova (MontaVista) - Adapted from CommandsViewWorkbook
|
* Anna Dushistova (MontaVista) - Adapted from CommandsViewWorkbook
|
||||||
* Yu-Fen Kuo (MontaVista) - [227572] RSE Terminal doesn't reset the "connected" state when the shell exits
|
* Yu-Fen Kuo (MontaVista) - [227572] RSE Terminal doesn't reset the "connected" state when the shell exits
|
||||||
* Martin Oberhuber (Wind River) - [227571] RSE Terminal should honor Encoding set on the IHost
|
* Martin Oberhuber (Wind River) - [227571] RSE Terminal should honor Encoding set on the IHost
|
||||||
|
* Michael Scharf (Wind River) - [236203] [rseterminal] Potentially UI blocking code in TerminalViewTab.createTabItem
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
package org.eclipse.rse.internal.terminals.ui.views;
|
package org.eclipse.rse.internal.terminals.ui.views;
|
||||||
|
|
||||||
|
@ -66,7 +67,7 @@ import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
|
||||||
public class TerminalViewTab extends Composite implements ITerminalListener{
|
public class TerminalViewTab extends Composite implements ITerminalListener{
|
||||||
|
|
||||||
public static String DATA_KEY_CONTROL = "$_control_$"; //$NON-NLS-1$
|
public static String DATA_KEY_CONTROL = "$_control_$"; //$NON-NLS-1$
|
||||||
private CTabFolder tabFolder;
|
private final CTabFolder tabFolder;
|
||||||
private Menu menu;
|
private Menu menu;
|
||||||
private boolean fMenuAboutToShow;
|
private boolean fMenuAboutToShow;
|
||||||
private TerminalActionCopy fActionEditCopy;
|
private TerminalActionCopy fActionEditCopy;
|
||||||
|
@ -78,6 +79,8 @@ public class TerminalViewTab extends Composite implements ITerminalListener{
|
||||||
private TerminalActionClearAll fActionEditClearAll;
|
private TerminalActionClearAll fActionEditClearAll;
|
||||||
|
|
||||||
private TerminalActionSelectAll fActionEditSelectAll;
|
private TerminalActionSelectAll fActionEditSelectAll;
|
||||||
|
private String fInitialWorkingDirCmd;
|
||||||
|
private ITerminalViewControl fTerminalControl;
|
||||||
|
|
||||||
protected class TerminalContextMenuHandler implements MenuListener,
|
protected class TerminalContextMenuHandler implements MenuListener,
|
||||||
IMenuListener {
|
IMenuListener {
|
||||||
|
@ -178,7 +181,7 @@ public class TerminalViewTab extends Composite implements ITerminalListener{
|
||||||
}
|
}
|
||||||
|
|
||||||
public CTabItem createTabItem(IAdaptable root, String initialWorkingDirCmd) {
|
public CTabItem createTabItem(IAdaptable root, String initialWorkingDirCmd) {
|
||||||
|
fInitialWorkingDirCmd = initialWorkingDirCmd;
|
||||||
CTabItem item = new CTabItem(tabFolder, SWT.CLOSE);
|
CTabItem item = new CTabItem(tabFolder, SWT.CLOSE);
|
||||||
setTabTitle(root, item);
|
setTabTitle(root, item);
|
||||||
|
|
||||||
|
@ -191,22 +194,18 @@ public class TerminalViewTab extends Composite implements ITerminalListener{
|
||||||
IHost host = (IHost) root;
|
IHost host = (IHost) root;
|
||||||
|
|
||||||
ITerminalConnector connector = new RSETerminalConnector(host);
|
ITerminalConnector connector = new RSETerminalConnector(host);
|
||||||
ITerminalViewControl terminalControl = TerminalViewControlFactory
|
fTerminalControl = TerminalViewControlFactory
|
||||||
.makeControl(this, c,
|
.makeControl(this, c,
|
||||||
new ITerminalConnector[] { connector });
|
new ITerminalConnector[] { connector });
|
||||||
// Specify Encoding for Terminal
|
// Specify Encoding for Terminal
|
||||||
try {
|
try {
|
||||||
terminalControl.setEncoding(host.getDefaultEncoding(true));
|
fTerminalControl.setEncoding(host.getDefaultEncoding(true));
|
||||||
} catch (UnsupportedEncodingException e) {
|
} catch (UnsupportedEncodingException e) {
|
||||||
/* ignore and allow fallback to default encoding */
|
/* ignore and allow fallback to default encoding */
|
||||||
}
|
}
|
||||||
terminalControl.setConnector(connector);
|
fTerminalControl.setConnector(connector);
|
||||||
terminalControl.connectTerminal();
|
fTerminalControl.connectTerminal();
|
||||||
if (initialWorkingDirCmd != null) {
|
item.setData(DATA_KEY_CONTROL, fTerminalControl);
|
||||||
while (!terminalControl.pasteString(initialWorkingDirCmd))
|
|
||||||
;
|
|
||||||
}
|
|
||||||
item.setData(DATA_KEY_CONTROL, terminalControl);
|
|
||||||
}
|
}
|
||||||
item.setControl(c);
|
item.setControl(c);
|
||||||
tabFolder.setSelection(item);
|
tabFolder.setSelection(item);
|
||||||
|
@ -338,6 +337,13 @@ public class TerminalViewTab extends Composite implements ITerminalListener{
|
||||||
ISystemResourceChangeEvents.EVENT_REFRESH, terminalServiceSubSystem));
|
ISystemResourceChangeEvents.EVENT_REFRESH, terminalServiceSubSystem));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(state == TerminalState.CONNECTED) {
|
||||||
|
if(fInitialWorkingDirCmd != null) {
|
||||||
|
fTerminalControl.pasteString(fInitialWorkingDirCmd);
|
||||||
|
fInitialWorkingDirCmd = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue