diff --git a/core/modules/widgets/draggable.js b/core/modules/widgets/draggable.js index 61fd81c35..553257398 100644 --- a/core/modules/widgets/draggable.js +++ b/core/modules/widgets/draggable.js @@ -48,7 +48,7 @@ DraggableWidget.prototype.render = function(parent,nextSibling) { if(this.draggableClasses) { classes.push(this.draggableClasses); } - if(!this.dragHandleSelector) { + if(!this.dragHandleSelector && this.dragEnable) { classes.push("tc-draggable"); } domNode.setAttribute("class",classes.join(" ")); @@ -56,16 +56,18 @@ DraggableWidget.prototype.render = function(parent,nextSibling) { parent.insertBefore(domNode,nextSibling); this.renderChildren(domNode,null); // Add event handlers - $tw.utils.makeDraggable({ - domNode: domNode, - dragTiddlerFn: function() {return self.getAttribute("tiddler");}, - dragFilterFn: function() {return self.getAttribute("filter");}, - startActions: self.startActions, - endActions: self.endActions, - dragImageType: self.dragImageType, - widget: this, - selector: self.dragHandleSelector - }); + if(this.dragEnable) { + $tw.utils.makeDraggable({ + domNode: domNode, + dragTiddlerFn: function() {return self.getAttribute("tiddler");}, + dragFilterFn: function() {return self.getAttribute("filter");}, + startActions: self.startActions, + endActions: self.endActions, + dragImageType: self.dragImageType, + widget: this, + selector: self.dragHandleSelector + }); + } this.domNodes.push(domNode); }; @@ -80,6 +82,7 @@ DraggableWidget.prototype.execute = function() { this.endActions = this.getAttribute("endactions"); this.dragImageType = this.getAttribute("dragimagetype"); this.dragHandleSelector = this.getAttribute("selector"); + this.dragEnable = this.getAttribute("enable","yes") === "yes"; // Make the child widgets this.makeChildWidgets(); }; @@ -89,7 +92,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of */ DraggableWidget.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); - if(changedAttributes.tag || changedAttributes["class"]) { + if($tw.utils.count(changedAttributes) > 0) { this.refreshSelf(); return true; }