From 193c5e9b7f46c31c88773846936b44ff8380fa1b Mon Sep 17 00:00:00 2001 From: Michael Golubev Date: Mon, 5 Aug 2019 01:03:51 +0200 Subject: [PATCH] IDEA-179900 - Docker exec tab does not correctly wrap - docker terminal pipes: forward tty resize events to remote API - without resize commands in main docker-java, use client extension to fire custom commands GitOrigin-RevId: dc4b04c5860213156a5317c5a3d6292c854a40b7 --- .../remoteServer/agent/util/log/TerminalPipe.java | 8 +++++++- .../remoteServer/util/CloudLoggingHandlerImpl.java | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/platform/remote-servers/agent-rt/src/com/intellij/remoteServer/agent/util/log/TerminalPipe.java b/platform/remote-servers/agent-rt/src/com/intellij/remoteServer/agent/util/log/TerminalPipe.java index ccfc905a3e3d..1e60f5b1ce4f 100644 --- a/platform/remote-servers/agent-rt/src/com/intellij/remoteServer/agent/util/log/TerminalPipe.java +++ b/platform/remote-servers/agent-rt/src/com/intellij/remoteServer/agent/util/log/TerminalPipe.java @@ -34,10 +34,16 @@ public abstract class TerminalPipe extends LogPipeBase { @Override public void open() { - myTerminalListener = myLoggingHandler.createTerminal(myLogPipeName, getOutputStream(), getInputStream(), getStderr()); + myTerminalListener = + myLoggingHandler.createTerminal(myLogPipeName, getOutputStream(), getInputStream(), getStderr()); if (myTerminalListener == null) { myTerminalListener = TerminalListener.NULL; } + myTerminalListener.setTtyResizeHandler(getTtyResizeHandler()); + } + + protected TerminalListener.TtyResizeHandler getTtyResizeHandler() { + return null; } protected InputStream getStderr() { diff --git a/platform/remote-servers/impl/src/com/intellij/remoteServer/util/CloudLoggingHandlerImpl.java b/platform/remote-servers/impl/src/com/intellij/remoteServer/util/CloudLoggingHandlerImpl.java index c27e71d90d16..aaeee7fec8db 100644 --- a/platform/remote-servers/impl/src/com/intellij/remoteServer/util/CloudLoggingHandlerImpl.java +++ b/platform/remote-servers/impl/src/com/intellij/remoteServer/util/CloudLoggingHandlerImpl.java @@ -106,7 +106,7 @@ public class CloudLoggingHandlerImpl implements CloudAgentLoggingHandler { } @Override - public void setTtyResizeHandler(TtyResizeHandler ttyResizeHandler) { + public void setTtyResizeHandler(@Nullable TtyResizeHandler ttyResizeHandler) { if (terminalHandler instanceof TerminalHandlerBase && ttyResizeHandler != null) { ((TerminalHandlerBase)terminalHandler).setResizeHandler(size -> ttyResizeHandler.onTtyResizeRequest(size.width, size.height)); }