This commit is contained in:
Jon Atkins 2014-11-17 16:25:49 +00:00
commit c3bc255691

View File

@ -119,19 +119,24 @@ window.plugin.sync.RegisteredMap.prototype.updateMap = function(keyArray) {
var _this = this; var _this = this;
// Use compound operation to ensure update pushed as a batch // Use compound operation to ensure update pushed as a batch
this.model.beginCompoundOperation(); this.model.beginCompoundOperation();
// Remove before set text to ensure full text change try {
this.lastUpdateUUID.removeRange(0, this.lastUpdateUUID.length); // Remove before set text to ensure full text change
this.lastUpdateUUID.setText(this.uuid); if (this.lastUpdateUUID.length > 0)
this.lastUpdateUUID.removeRange(0, this.lastUpdateUUID.length);
this.lastUpdateUUID.setText(this.uuid);
$.each(keyArray, function(ind, key) { $.each(keyArray, function(ind, key) {
var value = window.plugin[_this.pluginName][_this.fieldName][key]; var value = window.plugin[_this.pluginName][_this.fieldName][key];
if(typeof(value) !== 'undefined') { if(typeof(value) !== 'undefined') {
_this.map.set(key, value); _this.map.set(key, value);
} else { } else {
_this.map.delete(key); _this.map.delete(key);
} }
}); });
this.model.endCompoundOperation(); } finally {
// Ensure endCompoundOperation is always called (see bug #896)
this.model.endCompoundOperation();
}
} }
window.plugin.sync.RegisteredMap.prototype.isUpdatedByOthers = function() { window.plugin.sync.RegisteredMap.prototype.isUpdatedByOthers = function() {