1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Fix SubtitleSync-TextField behavior

This commit is contained in:
redSpoutnik 2020-04-22 15:56:05 +02:00
parent 9dbf4b63d6
commit be8a1baa27

View file

@ -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;
@ -145,7 +156,9 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
// if there is an external subtitle stream enabled
playbackManager.canHandleOffsetOnCurrentSubtitle(player)) {
// if no subtitle offset is defined
if (!playbackManager.getPlayerSubtitleOffset(player)) {
if (!(playbackManager.getPlayerSubtitleOffset(player) ||
// or being defined (element has focus)
subtitleSyncTextField.hasFocus)) {
// set default offset to '0' = 50%
subtitleSyncSlider.value = "50";
subtitleSyncTextField.textContent = "0s";