diff --git a/src/fullrenderer.tsx b/src/fullrenderer.tsx index 7338968f..a4fb510a 100644 --- a/src/fullrenderer.tsx +++ b/src/fullrenderer.tsx @@ -33,6 +33,7 @@ class FullRenderer extends React.Component< plugin: RendererPluginType; onHeightChange: () => void; initParams: RendererModelInitializeParams; + isSelected: boolean; }, {} > { diff --git a/src/linecomps.tsx b/src/linecomps.tsx index 1610ff42..9681ef00 100644 --- a/src/linecomps.tsx +++ b/src/linecomps.tsx @@ -767,6 +767,7 @@ class LineCmd extends React.Component< onHeightChange={this.handleHeightChange} initParams={this.makeRendererModelInitializeParams()} scrollToBringIntoViewport={this.scrollToBringIntoViewport} + isSelected={isSelected} /> @@ -776,6 +777,7 @@ class LineCmd extends React.Component< plugin={rendererPlugin} onHeightChange={this.handleHeightChange} initParams={this.makeRendererModelInitializeParams()} + isSelected={isSelected} /> diff --git a/src/prompt.less b/src/prompt.less index d156d536..cf350907 100644 --- a/src/prompt.less +++ b/src/prompt.less @@ -249,7 +249,11 @@ input[type="checkbox"] { } .renderer-container.code-renderer { - margin-top: 10px; + .scroller { + padding-top: 10px; + padding-bottom: 15px; + } + .monaco-editor .monaco-editor-background { background-color: rgba(255, 255, 255, 0.075) !important; } diff --git a/src/simplerenderer.tsx b/src/simplerenderer.tsx index 13c5f031..7a0b80ea 100644 --- a/src/simplerenderer.tsx +++ b/src/simplerenderer.tsx @@ -176,6 +176,7 @@ class SimpleBlobRenderer extends React.Component< onHeightChange: () => void; initParams: RendererModelInitializeParams; scrollToBringIntoViewport: () => void; + isSelected: boolean; }, {} > { @@ -264,7 +265,7 @@ class SimpleBlobRenderer extends React.Component< let simpleModel = model as SimpleBlobRendererModel; let { festate, cmdstr, exitcode } = this.props.initParams.rawCmd; return ( -
+
); diff --git a/src/view/code.tsx b/src/view/code.tsx index d8e2b511..18f83e8e 100644 --- a/src/view/code.tsx +++ b/src/view/code.tsx @@ -26,6 +26,7 @@ class SourceCodeRenderer extends React.Component< savedHeight: number; scrollToBringIntoViewport: () => void; lineState: LineStateType; + isSelected: boolean; }, { code: string; @@ -51,13 +52,14 @@ class SourceCodeRenderer extends React.Component< constructor(props) { super(props); this.monacoEditor = null; + const editorHeight = Math.max(props.savedHeight - 25, 0); // must subtract the padding/margin to get the real editorHeight this.state = { code: null, languages: [], selectedLanguage: "", isSave: false, isClosed: false, - editorHeight: props.savedHeight, + editorHeight: editorHeight, message: null, }; } @@ -205,9 +207,14 @@ class SourceCodeRenderer extends React.Component< let allowEditing = this.getAllowEditing(); if (!allowEditing) { const noOfLines = Math.max(this.state.code.split("\n").length, 5); - _editorHeight = Math.min(noOfLines * GlobalModel.termFontSize.get() * 1.5 + 10, fullWindowHeight); + const lineHeight = Math.ceil(GlobalModel.termFontSize.get() * 1.5); + _editorHeight = Math.min(noOfLines * lineHeight + 10, fullWindowHeight); } - this.setState({ editorHeight: _editorHeight }, () => this.props.scrollToBringIntoViewport()); + this.setState({ editorHeight: _editorHeight }, () => { + if (this.props.isSelected) { + this.props.scrollToBringIntoViewport(); + } + }); }; getAllowEditing(): boolean { @@ -243,7 +250,7 @@ class SourceCodeRenderer extends React.Component< let allowEditing = this.getAllowEditing(); return (
-
+