@@ -44,6 +44,8 @@ module.exports = ext.register("ext/zen/zen", {
4444 handleLeftMove : false ,
4545 handleRightMove : false ,
4646
47+ entered : false ,
48+
4749 nodes : [ ] ,
4850
4951 hook : function ( ) {
@@ -157,12 +159,24 @@ module.exports = ext.register("ext/zen/zen", {
157159 page . appendChild ( button ) ;
158160 } ) ;
159161
160- vbMain . parentNode . appendChild ( new apf . vbox ( {
161- anchors : "0 0 0 0" ,
162- id : "vbZen" ,
163- "class" : "vbZen" ,
164- visible : false
165- } ) ) ;
162+ ide . addEventListener ( "enterzen" , function ( ) {
163+ // prevent adding vbZen every time the button is clicked
164+ if ( ! _self . entered ) {
165+ _self . entered = true ;
166+ vbMain . parentNode . appendChild ( new apf . vbox ( {
167+ anchors : "0 0 0 0" ,
168+ id : "vbZen" ,
169+ "class" : "vbZen" ,
170+ visible : false
171+ } ) ) ;
172+
173+ vbZen . addEventListener ( "resize" , function ( e ) {
174+ if ( _self . isFocused ) {
175+ _self . calculatePositions ( ) ;
176+ }
177+ } ) ;
178+ }
179+ } ) ;
166180
167181 setTimeout ( function ( ) {
168182 _self . updateButtonPosition ( ) ;
@@ -171,12 +185,6 @@ module.exports = ext.register("ext/zen/zen", {
171185 this . animateZen = document . getElementById ( "animateZen" ) ;
172186 this . animateZenPosition = document . getElementById ( "animateZenPosition" ) ;
173187
174- vbZen . addEventListener ( "resize" , function ( e ) {
175- if ( _self . isFocused ) {
176- _self . calculatePositions ( ) ;
177- }
178- } ) ;
179-
180188 ide . addEventListener ( "exitfullscreen" , function ( ) {
181189 _self . escapeFromZenMode ( false , true ) ;
182190 } ) ;
@@ -301,6 +309,8 @@ module.exports = ext.register("ext/zen/zen", {
301309 * @param {boolean } slow Whether to slow down the animation
302310 */
303311 enterIntoZenMode : function ( slow ) {
312+ ide . dispatchEvent ( "enterzen" ) ;
313+
304314 var _self = this ;
305315
306316 var activeElement = apf . document . activeElement ;
@@ -381,6 +391,8 @@ module.exports = ext.register("ext/zen/zen", {
381391 if ( this . isFocused === false )
382392 return ;
383393
394+ ide . dispatchEvent ( "escapezen" ) ;
395+
384396 var _self = this ;
385397
386398 var activeElement = apf . document . activeElement ;
@@ -563,4 +575,4 @@ module.exports = ext.register("ext/zen/zen", {
563575 }
564576} ) ;
565577
566- } ) ;
578+ } ) ;
0 commit comments