From 52f8f8eaec14d18c8ed6e4ada412285acb53f6cc Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 18 Jul 2016 13:48:01 -0700 Subject: [PATCH 1/2] Support IMEs Currently using the xterm.js PR branch Fixes #7045 --- npm-shrinkwrap.json | 4 +- package.json | 2 +- .../terminal/electron-browser/media/xterm.css | 54 +++++++++++++++---- 3 files changed, 46 insertions(+), 14 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 66d0cb5a188..2948ef1c61e 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -429,8 +429,8 @@ }, "xterm": { "version": "0.33.0", - "from": "git+https://github.com/sourcelair/xterm.js.git#8790a94", - "resolved": "git+https://github.com/sourcelair/xterm.js.git#8790a94a56cd68a7188eef9ec47c05d2fd69cc41" + "from": "git://github.com/Tyriar/xterm.js#124_add_textarea_back", + "resolved": "git://github.com/Tyriar/xterm.js#124_add_textarea_back" }, "yauzl": { "version": "2.3.1", diff --git a/package.json b/package.json index b318ef95b6f..7dad999130a 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "vscode-debugprotocol": "1.10.0", "vscode-textmate": "2.0.1", "winreg": "1.2.0", - "xterm": "git+https://github.com/sourcelair/xterm.js.git#8790a94", + "xterm": "git://github.com/Tyriar/xterm.js#124_add_textarea_back", "yauzl": "2.3.1" }, "devDependencies": { diff --git a/src/vs/workbench/parts/terminal/electron-browser/media/xterm.css b/src/vs/workbench/parts/terminal/electron-browser/media/xterm.css index d8be6421d11..f4610b4364e 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/media/xterm.css +++ b/src/vs/workbench/parts/terminal/electron-browser/media/xterm.css @@ -16,41 +16,59 @@ position: relative; } -.monaco-workbench .panel.integrated-terminal .xterm:focus { +.monaco-workbench .panel.integrated-terminal .xterm.focus { outline: none; } -.hc-black .monaco-workbench .panel.integrated-terminal .xterm:focus { +.hc-black .monaco-workbench .panel.integrated-terminal .xterm.focus { outline: 2px solid #f38518; } +.monaco-workbench .panel.integrated-terminal .xterm .xterm-helpers { + position: absolute; + top: 0; +} + +.monaco-workbench .panel.integrated-terminal .xterm .xterm-helper-textarea { + position: absolute; + /* + * HACK: to fix IE's blinking cursor + * Move textarea out of the screen to the far left, so that the cursor is not visible. + */ + left: -9999em; + opacity: 0; + width: 0; + height: 0; + z-index: -10; +} + .monaco-workbench .panel.integrated-terminal .reverse-video { color: #1e1e1e; } .vs-dark .monaco-workbench .panel.integrated-terminal .reverse-video { color: #CCC; } .hc-black .monaco-workbench .panel.integrated-terminal .reverse-video { color: #FFF; } -.monaco-workbench .panel.integrated-terminal .xterm:focus .terminal-cursor { background-color: #333; } -.vs-dark .monaco-workbench .panel.integrated-terminal .xterm:focus .terminal-cursor { background-color: #CCC; } -.hc-black .monaco-workbench .panel.integrated-terminal .xterm:focus .terminal-cursor { background-color: #FFF; } +.monaco-workbench .panel.integrated-terminal .xterm.focus .terminal-cursor { background-color: #333; } +.vs-dark .monaco-workbench .panel.integrated-terminal .xterm.focus .terminal-cursor { background-color: #CCC; } +.hc-black .monaco-workbench .panel.integrated-terminal .xterm.focus .terminal-cursor { background-color: #FFF; } -.monaco-workbench .panel.integrated-terminal .xterm:not(:focus) .terminal-cursor { +.monaco-workbench .panel.integrated-terminal .xterm:not(.focus) .terminal-cursor { background-color: transparent; outline: 1px solid #333; outline-offset: -1px; } -.vs-dark .monaco-workbench .panel.integrated-terminal .xterm:not(:focus) .terminal-cursor { +.vs-dark .monaco-workbench .panel.integrated-terminal .xterm:not(.focus) .terminal-cursor { background-color: transparent; outline: 1px solid #CCC; outline-offset: -1px; } -.hc-black .monaco-workbench .panel.integrated-terminal .xterm:not(:focus) .terminal-cursor { +.hc-black .monaco-workbench .panel.integrated-terminal .xterm:not(.focus) .terminal-cursor { background-color: transparent; outline: 1px solid #FFF; outline-offset: -1px; } -.monaco-workbench .panel.integrated-terminal .xterm:focus .terminal-cursor.blinking { animation: blink-cursor 1.2s infinite step-end; } -.vs-dark .monaco-workbench .panel.integrated-terminal .xterm:focus .terminal-cursor.blinking { animation: blink-cursor-dark 1.2s infinite step-end; } -.hc-black .monaco-workbench .panel.integrated-terminal .xterm:focus .terminal-cursor.blinking { animation: blink-cursor-hc-black 1.2s infinite step-end; } +.monaco-workbench .panel.integrated-terminal .xterm.focus .terminal-cursor.blinking { animation: blink-cursor 1.2s infinite step-end; } +.vs-dark .monaco-workbench .panel.integrated-terminal .xterm.focus .terminal-cursor.blinking { animation: blink-cursor-dark 1.2s infinite step-end; } +.hc-black .monaco-workbench .panel.integrated-terminal .xterm.focus .terminal-cursor.blinking { animation: blink-cursor-hc-black 1.2s infinite step-end; } @keyframes blink-cursor { 0% { @@ -101,6 +119,20 @@ visibility: hidden; } +/* Composition view */ + +.terminal .composition-view { + background: #000; + color: #FFF; + display: none; + position: absolute; + white-space: nowrap; +} + +.terminal .composition-view.active { + display: block; +} + /* Base selection colors */ .monaco-workbench .panel.integrated-terminal .xterm *::selection { From 3a90fe1c89381f711780ae7585a8648135e48da1 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Fri, 22 Jul 2016 05:02:39 -0700 Subject: [PATCH 2/2] Uplevel xterm.js --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 416b3968a69..b0c74a88751 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -429,8 +429,8 @@ }, "xterm": { "version": "1.0.0", - "from": "git+https://github.com/sourcelair/xterm.js.git#10fbf0d", - "resolved": "git+https://github.com/sourcelair/xterm.js.git#10fbf0dcccdb1f8a9f065029c788ca86fb99fce8" + "from": "git+https://github.com/sourcelair/xterm.js.git#5e662d0", + "resolved": "git+https://github.com/sourcelair/xterm.js.git#5e662d0eb7c2e8b5100f96b45b1110b8f85ba8df" }, "yauzl": { "version": "2.3.1", diff --git a/package.json b/package.json index 7ffe8bb63b1..b825488c9ea 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "vscode-debugprotocol": "1.10.0", "vscode-textmate": "2.0.1", "winreg": "1.2.0", - "xterm": "git+https://github.com/sourcelair/xterm.js.git#10fbf0d", + "xterm": "git+https://github.com/sourcelair/xterm.js.git#5e662d0", "yauzl": "2.3.1" }, "devDependencies": {