[Pkg-javascript-commits] [pdf.js] 04/139: Fix loadingBar hiding when disableAutoFetch is enabled (issue 3590)
David Prévot
taffit at moszumanska.debian.org
Fri Jan 9 21:18:20 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository pdf.js.
commit ecbb39f9838995985cee3b97ec13286a0ba0c400
Author: Jonas Jenwald <jonas.jenwald at gmail.com>
Date: Sun Aug 17 01:06:03 2014 +0200
Fix loadingBar hiding when disableAutoFetch is enabled (issue 3590)
---
web/ui_utils.js | 14 ++++++++++++++
web/viewer.js | 19 +++++++++++++++++++
2 files changed, 33 insertions(+)
diff --git a/web/ui_utils.js b/web/ui_utils.js
index 46ca293..b4f2d73 100644
--- a/web/ui_utils.js
+++ b/web/ui_utils.js
@@ -275,6 +275,7 @@ var ProgressBar = (function ProgressBarClosure() {
}
function ProgressBar(id, opts) {
+ this.visible = true;
// Fetch the sub-elements for later.
this.div = document.querySelector(id + ' .progress');
@@ -328,8 +329,21 @@ var ProgressBar = (function ProgressBarClosure() {
},
hide: function ProgressBar_hide() {
+ if (!this.visible) {
+ return;
+ }
+ this.visible = false;
this.bar.classList.add('hidden');
document.body.classList.remove('loadingInProgress');
+ },
+
+ show: function ProgressBar_show() {
+ if (this.visible) {
+ return;
+ }
+ this.visible = true;
+ document.body.classList.add('loadingInProgress');
+ this.bar.classList.remove('hidden');
}
};
diff --git a/web/viewer.js b/web/viewer.js
index 705eb07..863e8c0 100644
--- a/web/viewer.js
+++ b/web/viewer.js
@@ -35,6 +35,7 @@ var VIEW_HISTORY_MEMORY = 20;
var SCALE_SELECT_CONTAINER_PADDING = 8;
var SCALE_SELECT_PADDING = 22;
var PAGE_NUMBER_LOADING_INDICATOR = 'visiblePageIsLoading';
+var DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000;
//#if B2G
//PDFJS.useOnlyCssZoom = true;
//PDFJS.disableTextLayer = true;
@@ -855,6 +856,24 @@ var PDFViewerApplication = {
// increases.
if (percent > this.loadingBar.percent || isNaN(percent)) {
this.loadingBar.percent = percent;
+
+ // When disableAutoFetch is enabled, it's not uncommon for the entire file
+ // to never be fetched (depends on e.g. the file structure). In this case
+ // the loading bar will not be completely filled, nor will it be hidden.
+ // To prevent displaying a partially filled loading bar permanently, we
+ // hide it when no data has been loaded during a certain amount of time.
+ if (PDFJS.disableAutoFetch && percent) {
+ if (this.disableAutoFetchLoadingBarTimeout) {
+ clearTimeout(this.disableAutoFetchLoadingBarTimeout);
+ this.disableAutoFetchLoadingBarTimeout = null;
+ }
+ this.loadingBar.show();
+
+ this.disableAutoFetchLoadingBarTimeout = setTimeout(function () {
+ this.loadingBar.hide();
+ this.disableAutoFetchLoadingBarTimeout = null;
+ }.bind(this), DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT);
+ }
}
},
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git
More information about the Pkg-javascript-commits
mailing list