@@ -85,8 +85,8 @@ async function initAddons(term: Terminal): Promise<void> {
85
85
term . unicode . activeVersion = '11' ;
86
86
}
87
87
88
- async function initiateRemoteTerminal ( ) {
89
- updateTerminalSize ( ) ;
88
+ async function initiateRemoteTerminal ( terminal : Terminal ) {
89
+ updateTerminalSize ( terminal ) ;
90
90
91
91
const ReconnectingWebSocket = ( await import ( "reconnecting-websocket" ) ) . default ;
92
92
@@ -110,17 +110,17 @@ async function initiateRemoteTerminal() {
110
110
socketURL += serverProcessId ;
111
111
112
112
await initiateRemoteCommunicationChannelSocket ( protocol ) ;
113
- window . socket = new ReconnectingWebSocket ( socketURL , [ ] , webSocketSettings ) ;
114
- window . socket . onopen = async ( ) => {
113
+ let socket = new ReconnectingWebSocket ( socketURL , [ ] , webSocketSettings ) ;
114
+ socket . onopen = async ( ) => {
115
115
outputDialog . close ( ) ;
116
116
( document . querySelector ( ".xterm-helper-textarea" ) as HTMLTextAreaElement ) . focus ( ) ;
117
117
118
- await runRealTerminal ( term , window . socket as WebSocket ) ;
118
+ await runRealTerminal ( term , socket as WebSocket ) ;
119
119
} ;
120
120
//@ts -ignore
121
- window . socket . onclose = handleDisconnected ;
121
+ socket . onclose = handleDisconnected ;
122
122
//@ts -ignore
123
- window . socket . onerror = handleDisconnected ;
123
+ socket . onerror = handleDisconnected ;
124
124
}
125
125
126
126
async function createTerminal ( element : HTMLElement , toDispose : DisposableCollection ) : Promise < void > {
@@ -182,10 +182,13 @@ async function createTerminal(element: HTMLElement, toDispose: DisposableCollect
182
182
} /terminals/`;
183
183
184
184
term . open ( element ) ;
185
- updateTerminalSize ( ) ;
185
+ updateTerminalSize ( term ) ;
186
186
term . focus ( ) ;
187
187
188
- await initiateRemoteTerminal ( ) ;
188
+ await initiateRemoteTerminal ( term ) ;
189
+
190
+ const debouncedUpdateTerminalSize = debounce ( ( ) => updateTerminalSize ( term ) , 200 , true ) ;
191
+ window . onresize = ( ) => debouncedUpdateTerminalSize ( ) ;
189
192
}
190
193
191
194
const reloadButton = document . createElement ( "button" ) ;
@@ -260,19 +263,16 @@ async function runRealTerminal(terminal: Terminal, socket: WebSocket): Promise<v
260
263
onDidChangeState . fire ( ) ;
261
264
}
262
265
263
- function updateTerminalSize ( ) : void {
264
- if ( ! window . terminal ) {
266
+ function updateTerminalSize ( terminal : Terminal ) : void {
267
+ if ( ! terminal ) {
265
268
console . warn ( "Terminal not yet initialized. Aborting resize." ) ;
266
269
return ;
267
270
}
268
271
const fitAddon = new FitAddon ( ) ;
269
- window . terminal . loadAddon ( fitAddon ) ;
272
+ terminal . loadAddon ( fitAddon ) ;
270
273
fitAddon . fit ( ) ;
271
274
}
272
275
273
- const debouncedUpdateTerminalSize = debounce ( updateTerminalSize , 200 , true ) ;
274
- window . onresize = ( ) => debouncedUpdateTerminalSize ( ) ;
275
-
276
276
window . gitpod . ideService = {
277
277
get state ( ) {
278
278
return state ;
0 commit comments