File tree Expand file tree Collapse file tree 2 files changed +38
-2
lines changed Expand file tree Collapse file tree 2 files changed +38
-2
lines changed Original file line number Diff line number Diff line change @@ -121,6 +121,12 @@ module.exports.AScene = registerElement('a-scene', {
121121
122122 // Exit VR on `vrdisplaydeactivate` (e.g. taking off Rift headset).
123123 window . addEventListener ( 'vrdisplaydeactivate' , function ( ) { self . exitVR ( ) ; } ) ;
124+
125+ // Enter VR on `vrdisplayconnect` (e.g. plugging on Rift headset).
126+ window . addEventListener ( 'vrdisplayconnect' , function ( ) { self . enterVR ( ) ; } ) ;
127+
128+ // Exit VR on `vrdisplaydisconnect` (e.g. unplugging Rift headset).
129+ window . addEventListener ( 'vrdisplaydisconnect' , function ( ) { self . exitVR ( true ) ; } ) ;
124130 } ,
125131 writable : window . debug
126132 } ,
@@ -247,7 +253,8 @@ module.exports.AScene = registerElement('a-scene', {
247253 throw new Error ( 'Failed to enter VR mode (`requestPresent`).' ) ;
248254 }
249255 }
250- }
256+ } ,
257+ writable : window . debug
251258 } ,
252259 /**
253260 * Call `exitPresent` if WebVR or WebVR polyfill.
@@ -296,7 +303,8 @@ module.exports.AScene = registerElement('a-scene', {
296303 throw new Error ( 'Failed to exit VR mode (`exitPresent`).' ) ;
297304 }
298305 }
299- }
306+ } ,
307+ writable : window . debug
300308 } ,
301309
302310 /**
Original file line number Diff line number Diff line change @@ -60,6 +60,34 @@ suite('a-scene (without renderer)', function () {
6060 } ) ;
6161 } ) ;
6262
63+ suite . only ( 'vrdisplayconnect' , function ( ) {
64+ test ( 'tells A-Frame about entering VR when the headset is connected' , function ( done ) {
65+ var event ;
66+ var sceneEl = this . el ;
67+ var enterVRStub = this . sinon . stub ( sceneEl , 'enterVR' ) ;
68+ event = new CustomEvent ( 'vrdisplayconnect' ) ;
69+ window . dispatchEvent ( event ) ;
70+ process . nextTick ( function ( ) {
71+ assert . ok ( enterVRStub . called ) ;
72+ done ( ) ;
73+ } ) ;
74+ } ) ;
75+ } ) ;
76+
77+ suite . only ( 'vrdisplaydisconnect' , function ( ) {
78+ test ( 'tells A-Frame about entering VR when the headset is connected' , function ( done ) {
79+ var event ;
80+ var sceneEl = this . el ;
81+ var exitVRStub = this . sinon . stub ( sceneEl , 'exitVR' ) ;
82+ event = new CustomEvent ( 'vrdisplaydisconnect' ) ;
83+ window . dispatchEvent ( event ) ;
84+ process . nextTick ( function ( ) {
85+ assert . ok ( exitVRStub . calledWith ( true ) ) ;
86+ done ( ) ;
87+ } ) ;
88+ } ) ;
89+ } ) ;
90+
6391 suite ( 'vrdisplaypresentchange' , function ( ) {
6492 test ( 'tells A-Frame about entering VR if now presenting' , function ( done ) {
6593 var event ;
You can’t perform that action at this time.
0 commit comments