diff --git a/js/views/annotations_manager.js b/js/views/annotations_manager.js index 97c0d29b6..e9e99367d 100644 --- a/js/views/annotations_manager.js +++ b/js/views/annotations_manager.js @@ -211,6 +211,12 @@ ReadiumSDK.Views.AnnotationsManager = function (proxyObj, options) { return result; }; + this.redrawHighlights = function() { + for(var spine in liveAnnotations) { + var annotationsForView = liveAnnotations[spine]; + annotationsForView.redraw(); + } + }; function getPartialCfi(CFI) { diff --git a/js/views/reader_view.js b/js/views/reader_view.js index f054ac8f6..e1940b791 100644 --- a/js/views/reader_view.js +++ b/js/views/reader_view.js @@ -1223,6 +1223,17 @@ ReadiumSDK.Views.ReaderView = function(options) { return _annotationsManager.removeHighlight(id); }; + /** + * Redraws all highlights. Calling this function from a + * PAGINATION_CHANGED event callback should cover all cases + * when annotations should be redrawn. + * + * @returns {undefined} + */ + this.redrawHighlights = function () { + _annotationsManager.redrawHighlights(); + }; + /** * * @param {string} eventName Event name.