|
|
@@ -45,6 +45,8 @@ export const Terminal = (props: TerminalProps) => {
|
|
|
let serializeAddon: SerializeAddon
|
|
|
let fitAddon: FitAddon
|
|
|
let handleResize: () => void
|
|
|
+ let handleTextareaFocus: () => void
|
|
|
+ let handleTextareaBlur: () => void
|
|
|
let reconnect: number | undefined
|
|
|
let disposed = false
|
|
|
|
|
|
@@ -105,6 +107,7 @@ export const Terminal = (props: TerminalProps) => {
|
|
|
|
|
|
const t = new mod.Terminal({
|
|
|
cursorBlink: true,
|
|
|
+ cursorStyle: "bar",
|
|
|
fontSize: 14,
|
|
|
fontFamily: "IBM Plex Mono, monospace",
|
|
|
allowTransparency: true,
|
|
|
@@ -170,6 +173,17 @@ export const Terminal = (props: TerminalProps) => {
|
|
|
|
|
|
t.open(container)
|
|
|
container.addEventListener("pointerdown", handlePointerDown)
|
|
|
+
|
|
|
+ handleTextareaFocus = () => {
|
|
|
+ t.options.cursorBlink = true
|
|
|
+ }
|
|
|
+ handleTextareaBlur = () => {
|
|
|
+ t.options.cursorBlink = false
|
|
|
+ }
|
|
|
+
|
|
|
+ t.textarea?.addEventListener("focus", handleTextareaFocus)
|
|
|
+ t.textarea?.addEventListener("blur", handleTextareaBlur)
|
|
|
+
|
|
|
focusTerminal()
|
|
|
|
|
|
if (local.pty.buffer) {
|
|
|
@@ -242,6 +256,8 @@ export const Terminal = (props: TerminalProps) => {
|
|
|
window.removeEventListener("resize", handleResize)
|
|
|
}
|
|
|
container.removeEventListener("pointerdown", handlePointerDown)
|
|
|
+ term?.textarea?.removeEventListener("focus", handleTextareaFocus)
|
|
|
+ term?.textarea?.removeEventListener("blur", handleTextareaBlur)
|
|
|
|
|
|
const t = term
|
|
|
if (serializeAddon && props.onCleanup && t) {
|