@@ -95,6 +95,7 @@ class Gleap {
9595 customTranslation = { } ;
9696 networkIntercepter = new GleapNetworkIntercepter ( ) ;
9797 replay = null ;
98+ escListener = null ;
9899 feedbackButton = null ;
99100 fakeLoading = null ;
100101 fakeLoadingProgress = 0 ;
@@ -230,6 +231,29 @@ class Gleap {
230231 }
231232 }
232233
234+ unregisterEscListener ( ) {
235+ if ( this . escListener ) {
236+ document . removeEventListener ( "keydown" , this . escListener ) ;
237+ }
238+ }
239+
240+ registerEscListener ( ) {
241+ const self = this ;
242+ this . escListener = function ( evt ) {
243+ evt = evt || window . event ;
244+ var isEscape = false ;
245+ if ( "key" in evt ) {
246+ isEscape = evt . key === "Escape" || evt . key === "Esc" ;
247+ } else {
248+ isEscape = evt . keyCode === 27 ;
249+ }
250+ if ( isEscape ) {
251+ self . closeGleap ( true ) ;
252+ }
253+ } ;
254+ document . addEventListener ( "keydown" , this . escListener ) ;
255+ }
256+
233257 /**
234258 * Indentifies the user session
235259 * @param {string } userId
@@ -1351,6 +1375,7 @@ class Gleap {
13511375 this . overwriteConsoleLog ( ) ;
13521376 this . startCrashDetection ( ) ;
13531377 this . registerKeyboardListener ( ) ;
1378+ this . registerEscListener ( ) ;
13541379
13551380 // Initially check network
13561381 if ( isLocalNetwork ( ) ) {
@@ -1376,8 +1401,8 @@ class Gleap {
13761401 return code ;
13771402 } ;
13781403
1379- document . onkeyup = function ( e ) {
1380- var char = charForEvent ( e ) ;
1404+ document . addEventListener ( "keyup" , function ( e ) {
1405+ const char = charForEvent ( e ) ;
13811406 if (
13821407 e . ctrlKey &&
13831408 ( char === "i" || char === "I" || char === 73 ) &&
@@ -1386,7 +1411,7 @@ class Gleap {
13861411 self . autostartDrawing = true ;
13871412 Gleap . startFeedbackFlow ( ) ;
13881413 }
1389- } ;
1414+ } ) ;
13901415 }
13911416
13921417 checkForInitType ( ) {
0 commit comments