diff --git a/lib/storage.js b/lib/storage.js index 27444ed5..04c5f897 100644 --- a/lib/storage.js +++ b/lib/storage.js @@ -212,6 +212,7 @@ function File (storage, file, pieces, pieceLength) { self.pieces = pieces self.pieceLength = pieceLength self.done = false + self.deselected = false // use deselected over selected, selected is dom prop self._blobUrl = null self._blobUrlPending = false @@ -233,6 +234,7 @@ function File (storage, file, pieces, pieceLength) { File.prototype.select = function () { var self = this if (self.pieces.length > 0) { + self.deselected = false var start = self.pieces[0].index var end = self.pieces[self.pieces.length - 1].index self.storage.emit('select', start, end, false) @@ -246,6 +248,7 @@ File.prototype.select = function () { File.prototype.deselect = function () { var self = this if (self.pieces.length > 0) { + self.deselected = true var start = self.pieces[0].index var end = self.pieces[self.pieces.length - 1].index self.storage.emit('deselect', start, end, false) @@ -676,7 +679,7 @@ Storage.prototype._onFileDone = function (file) { Storage.prototype._checkDone = function () { var self = this - if (!self.done && self.files.every(function (file) { return file.done })) { + if (!self.done && self.files.every(function (file) { return file.done || file.deselected })) { self.done = true self.emit('done') }