From dbfba28a10e79baa38b2553b438b3c549a0aacb6 Mon Sep 17 00:00:00 2001 From: Brandon Casey Date: Thu, 23 Mar 2017 14:03:15 -0400 Subject: [PATCH] fix: not showing default text tracks over video (#4216) This allows default tracks or tracks with a `mode`of `showing` to be seen when they are added (as we would expect). Rather than only being seen after the first `modechange` event (aka a selection from the menu). This is done by watching for `loadstart` on Player. --- .../control-bar/text-track-controls/text-track-menu-item.js | 1 + src/js/tech/tech.js | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/js/control-bar/text-track-controls/text-track-menu-item.js b/src/js/control-bar/text-track-controls/text-track-menu-item.js index 6b2b7e14ec..42a7dcc87d 100644 --- a/src/js/control-bar/text-track-controls/text-track-menu-item.js +++ b/src/js/control-bar/text-track-controls/text-track-menu-item.js @@ -36,6 +36,7 @@ class TextTrackMenuItem extends MenuItem { this.track = track; const changeHandler = Fn.bind(this, this.handleTracksChange); + player.on(['loadstart', 'texttrackchange'], changeHandler); tracks.addEventListener('change', changeHandler); this.on('dispose', function() { tracks.removeEventListener('change', changeHandler); diff --git a/src/js/tech/tech.js b/src/js/tech/tech.js index 18434a62b5..ef0edd5a30 100644 --- a/src/js/tech/tech.js +++ b/src/js/tech/tech.js @@ -595,11 +595,15 @@ class Tech extends Component { textTracksChanges(); tracks.addEventListener('change', textTracksChanges); + tracks.addEventListener('addtrack', textTracksChanges); + tracks.addEventListener('removetrack', textTracksChanges); this.on('dispose', function() { remoteTracks.off('addtrack', handleAddTrack); remoteTracks.off('removetrack', handleRemoveTrack); tracks.removeEventListener('change', textTracksChanges); + tracks.removeEventListener('addtrack', textTracksChanges); + tracks.removeEventListener('removetrack', textTracksChanges); for (let i = 0; i < tracks.length; i++) { const track = tracks[i];