diff --git a/src/js/player.js b/src/js/player.js index e3bc66f5c7..978ead49d0 100644 --- a/src/js/player.js +++ b/src/js/player.js @@ -2979,9 +2979,11 @@ class Player extends Component { fullWindowOnEscKey(event) { if (keycode.isEventKey(event, 'Esc')) { if (this.isFullscreen() === true) { - this.exitFullscreen(); - } else { - this.exitFullWindow(); + if (!this.isFullWindow) { + this.exitFullscreen(); + } else { + this.exitFullWindow(); + } } } } diff --git a/test/unit/player-fullscreen.test.js b/test/unit/player-fullscreen.test.js index b1e531274c..45da22e9bd 100644 --- a/test/unit/player-fullscreen.test.js +++ b/test/unit/player-fullscreen.test.js @@ -207,3 +207,20 @@ QUnit.test('fullscreenOptions from function args should override player options' player.dispose(); }); + +QUnit.test('fullwindow mode should exit when ESC event triggered', function(assert) { + const player = FullscreenTestHelpers.makePlayer(true); + + player.enterFullWindow(); + assert.ok(player.isFullWindow, 'enterFullWindow should be called'); + + const evt = TestHelpers.createEvent('keydown'); + + evt.keyCode = 27; + evt.which = 27; + player.boundFullWindowOnEscKey_(evt); + // player.fullWindowOnEscKey(evt); + assert.equal(player.isFullWindow, false, 'exitFullWindow should be called'); + + player.dispose(); +});