File tree Expand file tree Collapse file tree 2 files changed +42
-1
lines changed Expand file tree Collapse file tree 2 files changed +42
-1
lines changed Original file line number Diff line number Diff line change 1+ const vscode = acquireVsCodeApi ( ) ;
2+
13class Events {
24 consumers = { frame :[ ] , frameSize :[ ] , exit :[ ] }
35 addConsumer ( key , consumer ) {
@@ -44,7 +46,24 @@ window.addEventListener('message', event => {
4446 if ( message . command === "ci" ) {
4547 ci . _width = message . width
4648 ci . _height = message . height
47- webGl ( document . getElementById ( "layout" ) , ci )
49+ const canvas = document . getElementById ( "layout" ) ;
50+ webGl ( canvas , ci )
51+ window . addEventListener ( "keydown" , ( event ) => {
52+ vscode . postMessage (
53+ {
54+ command :"keydown" ,
55+ code :event . code
56+ }
57+ )
58+ } )
59+ window . addEventListener ( "keyup" , ( event ) => {
60+ vscode . postMessage (
61+ {
62+ command :"keyup" ,
63+ code :event . code
64+ }
65+ )
66+ } )
4867 }
4968} ) ;
5069
Original file line number Diff line number Diff line change @@ -128,6 +128,28 @@ export class JSDosHost implements ExecAction{
128128 data :rgb
129129 } )
130130 } )
131+ panel . webview . onDidReceiveMessage (
132+ message => {
133+ console . log ( message )
134+ switch ( message . command ) {
135+ case 'alert' :
136+ vscode . window . showInformationMessage ( message . text ) ;
137+ return ;
138+ case 'keyup' :
139+ const up = utils . htmlKey2jsdos ( message . code )
140+ if ( up && runtime && runtime . ci )
141+ runtime . ci . sendKeyEvent ( up , false ) ;
142+ return ;
143+ case 'keydown' :
144+ const down = utils . htmlKey2jsdos ( message . code )
145+ if ( down && runtime && runtime . ci )
146+ runtime . ci . sendKeyEvent ( down , true ) ;
147+ return ;
148+ }
149+ } ,
150+ undefined ,
151+ context . subscriptions
152+ ) ;
131153 }
132154
133155 return {
You can’t perform that action at this time.
0 commit comments