From c2d35e615defb9b7d814d637bb330af77380f956 Mon Sep 17 00:00:00 2001 From: j Date: Mon, 21 Sep 2020 14:05:57 +0200 Subject: [PATCH] don't move to annotation in point after adding annotation creating an anntoation is async and might return after user has seeked to another location or started playback again. also: fix variable name: stayAtPosition->moveToPosition --- source/UI/js/Video/VideoAnnotationPanel.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/source/UI/js/Video/VideoAnnotationPanel.js b/source/UI/js/Video/VideoAnnotationPanel.js index a3935b1e..639fa1fa 100644 --- a/source/UI/js/Video/VideoAnnotationPanel.js +++ b/source/UI/js/Video/VideoAnnotationPanel.js @@ -938,7 +938,7 @@ Ox.VideoAnnotationPanel = function(options, self) { that.triggerEvent('resizemap', data); }, select: function(data) { - selectAnnotation(data, true); + selectAnnotation(data, !self.updating); }, showentityinfo: function(data) { that.triggerEvent('showentityinfo', data); @@ -1340,7 +1340,7 @@ Ox.VideoAnnotationPanel = function(options, self) { that.triggerEvent('annotationssize', {size: data.size}); } - function selectAnnotation(data, stayAtPosition) { + function selectAnnotation(data, moveToPosition) { if (Ox.isUndefined(data)) { // doubleclick on small timeline data = getAnnotation(); @@ -1351,13 +1351,11 @@ Ox.VideoAnnotationPanel = function(options, self) { // FIXME // self.editing = false; if (data.id) { - if (!stayAtPosition || ( - self.options.annotationsRange != 'position' && ( - self.options.position < data['in'] - || self.options.position > data.out - ) - ) - ) { + var outOfRange = self.options.annotationsRange != 'position' && ( + self.options.position < data['in'] + || self.options.position > data.out + ) + if (moveToPosition && outOfRange) { setPosition(data['in']); // if annotationsRange is 'position', // this may cause a deselect @@ -1717,6 +1715,7 @@ Ox.VideoAnnotationPanel = function(options, self) { (id, annotation) -> update annotation with id @*/ that.updateAnnotation = function(id, annotation) { + self.updating = true // called from editannotation callback // id might have changed if new annotation was created if (annotation.id) { @@ -1730,6 +1729,7 @@ Ox.VideoAnnotationPanel = function(options, self) { self.annotations = getAnnotations(); setTimelineState(); } + self.updating = false }; /*@