File tree 2 files changed +42
-1
lines changed
2 files changed +42
-1
lines changed Original file line number Diff line number Diff line change
1
+ const vscode = acquireVsCodeApi ( ) ;
2
+
1
3
class Events {
2
4
consumers = { frame :[ ] , frameSize :[ ] , exit :[ ] }
3
5
addConsumer ( key , consumer ) {
@@ -44,7 +46,24 @@ window.addEventListener('message', event => {
44
46
if ( message . command === "ci" ) {
45
47
ci . _width = message . width
46
48
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
+ } )
48
67
}
49
68
} ) ;
50
69
Original file line number Diff line number Diff line change @@ -128,6 +128,28 @@ export class JSDosHost implements ExecAction{
128
128
data :rgb
129
129
} )
130
130
} )
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
+ ) ;
131
153
}
132
154
133
155
return {
You can’t perform that action at this time.
0 commit comments