diff --git a/src/components/subtitlesync/subtitlesync.js b/src/components/subtitlesync/subtitlesync.js
index 4927029189..fb986ec348 100644
--- a/src/components/subtitlesync/subtitlesync.js
+++ b/src/components/subtitlesync/subtitlesync.js
@@ -32,8 +32,12 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
this.textContent = offset + 's';
};
- subtitleSyncTextField.addEventListener('keypress', function(event) {
+ subtitleSyncTextField.addEventListener('click', function () {
+ // keep focus to prevent fade with osd
+ this.hasFocus = true;
+ });
+ subtitleSyncTextField.addEventListener('keydown', function(event) {
if (event.key === 'Enter') {
// if input key is enter search for float pattern
var inputOffset = /[-+]?\d+\.?\d*/g.exec(this.textContent);
@@ -55,7 +59,7 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
this.hasFocus = false;
event.preventDefault();
} else {
- // keep focus to prevent fade with bottom layout
+ // keep focus to prevent fade with osd
this.hasFocus = true;
if (event.key.match(/[+-\d.s]/) === null) {
event.preventDefault();
@@ -63,6 +67,13 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
}
});
+ subtitleSyncTextField.blur = function() {
+ // prevent textfield to blur while element has focus
+ if (!this.hasFocus && this.prototype) {
+ this.prototype.blur();
+ }
+ };
+
subtitleSyncSlider.updateOffset = function(percent) {
// default value is 0s = 50%
this.value = percent === undefined ? 50 : percent;
@@ -140,12 +151,10 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
/* eslint-disable no-fallthrough */
switch (action) {
case undefined:
- // if showing subtitle sync is enabled
- if (playbackManager.isShowingSubtitleOffsetEnabled(player) &&
- // if there is an external subtitle stream enabled
- playbackManager.canHandleOffsetOnCurrentSubtitle(player)) {
- // if no subtitle offset is defined
- if (!playbackManager.getPlayerSubtitleOffset(player)) {
+ // if showing subtitle sync is enabled and if there is an external subtitle stream enabled
+ if (playbackManager.isShowingSubtitleOffsetEnabled(player) && playbackManager.canHandleOffsetOnCurrentSubtitle(player)) {
+ // if no subtitle offset is defined or element has focus (offset being defined)
+ if (!(playbackManager.getPlayerSubtitleOffset(player) || subtitleSyncTextField.hasFocus)) {
// set default offset to '0' = 50%
subtitleSyncSlider.value = '50';
subtitleSyncTextField.textContent = '0s';
diff --git a/src/components/tvproviders/schedulesdirect.template.html b/src/components/tvproviders/schedulesdirect.template.html
index 3cfba06fe1..abe19b50f5 100644
--- a/src/components/tvproviders/schedulesdirect.template.html
+++ b/src/components/tvproviders/schedulesdirect.template.html
@@ -1,7 +1,7 @@
diff --git a/src/components/tvproviders/xmltv.template.html b/src/components/tvproviders/xmltv.template.html
index e8dc434165..72c29904b3 100644
--- a/src/components/tvproviders/xmltv.template.html
+++ b/src/components/tvproviders/xmltv.template.html
@@ -1,7 +1,7 @@
diff --git a/src/components/upnextdialog/upnextdialog.css b/src/components/upnextdialog/upnextdialog.css
index 15f91b29d9..05e3b10f57 100644
--- a/src/components/upnextdialog/upnextdialog.css
+++ b/src/components/upnextdialog/upnextdialog.css
@@ -63,8 +63,8 @@
height: auto;
width: 100%;
box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37);
- border: 0;
user-drag: none;
+ border: 0;
user-select: none;
-moz-user-select: none;
-webkit-user-drag: none;
diff --git a/src/config.example.json b/src/config.template.json
similarity index 100%
rename from src/config.example.json
rename to src/config.template.json
diff --git a/src/controllers/list.js b/src/controllers/list.js
index cef6ceda6c..edd4469007 100644
--- a/src/controllers/list.js
+++ b/src/controllers/list.js
@@ -1016,7 +1016,6 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
if ('Programs' === params.type) {
filters.push('Genres');
} else {
- params.type;
filters.push('IsUnplayed');
filters.push('IsPlayed');
diff --git a/src/controllers/livetvtuner.js b/src/controllers/livetvtuner.js
index e8a03e7f2b..d7a4d92db2 100644
--- a/src/controllers/livetvtuner.js
+++ b/src/controllers/livetvtuner.js
@@ -82,7 +82,6 @@ define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button
info.Id = id;
}
- info.Id;
ApiClient.ajax({
type: 'POST',
url: ApiClient.getUrl('LiveTv/TunerHosts'),
diff --git a/src/controllers/usernew.js b/src/controllers/usernew.js
index e59143a9d8..5646b239d0 100644
--- a/src/controllers/usernew.js
+++ b/src/controllers/usernew.js
@@ -8,12 +8,12 @@ define(['jQuery', 'loading', 'globalize', 'fnchecked', 'emby-checkbox'], functio
for (var i = 0; i < mediaFolders.length; i++) {
var folder = mediaFolders[i];
- html += '
';
+ html += '
';
}
html += '
';
$('.folderAccess', page).html(html).trigger('create');
- $('#chkEnableAllFolders', page).checked(true).trigger('change');
+ $('#chkEnableAllFolders', page).checked(false).trigger('change');
}
function loadChannels(page, channels) {
@@ -23,7 +23,7 @@ define(['jQuery', 'loading', 'globalize', 'fnchecked', 'emby-checkbox'], functio
for (var i = 0; i < channels.length; i++) {
var folder = channels[i];
- html += '