diff --git a/app/TerminalView.m b/app/TerminalView.m index a1eeba926e..cdf1dbb71a 100644 --- a/app/TerminalView.m +++ b/app/TerminalView.m @@ -134,6 +134,7 @@ - (void)installTerminalView { self.scrollbarView.contentView = webView; [self.scrollbarView addSubview:webView]; + [self syncTerminalFocus]; } - (void)uninstallTerminalView { @@ -202,7 +203,13 @@ - (CGFloat)effectiveFontSize { - (void)setTerminalFocused:(BOOL)terminalFocused { _terminalFocused = terminalFocused; - NSString *script = terminalFocused ? @"exports.setFocused(true)" : @"exports.setFocused(false)"; + [self syncTerminalFocus]; +} + +- (void)syncTerminalFocus { + if (!self.terminal.loaded) + return; + NSString *script = _terminalFocused ? @"exports.setFocused(true)" : @"exports.setFocused(false)"; [self.terminal.webView evaluateJavaScript:script completionHandler:nil]; } diff --git a/app/terminal/term.js b/app/terminal/term.js index 300fe6e128..e4ea2e7a99 100644 --- a/app/terminal/term.js +++ b/app/terminal/term.js @@ -85,7 +85,7 @@ exports.copy = () => term.copySelectionToClipboard(); // This listener blocks blur events that come in because the webview has lost first responder term.scrollPort_.screen_.addEventListener('blur', (e) => { if (e.target.ownerDocument.activeElement == e.target) { - e.stopPropagation(); + e.stopImmediatePropagation(); } }, {capture: true}); term.scrollPort_.screen_.addEventListener('mousedown', (e) => {