diff --git a/src/litegraph.js b/src/litegraph.js index 2f2d6ef71c..a70f4733e3 100644 --- a/src/litegraph.js +++ b/src/litegraph.js @@ -9732,13 +9732,17 @@ LGraphNode.prototype.executeAction = function(action) ctx.fillRect(margin, y, widget_width - margin * 2, H); var range = w.options.max - w.options.min; var nvalue = (w.value - w.options.min) / range; - ctx.fillStyle = active_widget == w ? "#89A" : "#678"; + if(nvalue < 0.0) nvalue = 0.0; + if(nvalue > 1.0) nvalue = 1.0; + ctx.fillStyle = w.options.hasOwnProperty("slider_color") ? w.options.slider_color : (active_widget == w ? "#89A" : "#678"); ctx.fillRect(margin, y, nvalue * (widget_width - margin * 2), H); if(show_text && !w.disabled) ctx.strokeRect(margin, y, widget_width - margin * 2, H); if (w.marker) { var marker_nvalue = (w.marker - w.options.min) / range; - ctx.fillStyle = "#AA9"; + if(marker_nvalue < 0.0) marker_nvalue = 0.0; + if(marker_nvalue > 1.0) marker_nvalue = 1.0; + ctx.fillStyle = w.options.hasOwnProperty("marker_color") ? w.options.marker_color : "#AA9"; ctx.fillRect( margin + marker_nvalue * (widget_width - margin * 2), y, 2, H ); } if (show_text) { @@ -9905,6 +9909,7 @@ LGraphNode.prototype.executeAction = function(action) case "slider": var range = w.options.max - w.options.min; var nvalue = Math.clamp((x - 15) / (widget_width - 30), 0, 1); + if(w.options.read_only) break; w.value = w.options.min + (w.options.max - w.options.min) * nvalue; if (w.callback) { setTimeout(function() { @@ -10019,7 +10024,6 @@ LGraphNode.prototype.executeAction = function(action) case "text": if (event.type == LiteGraph.pointerevents_method+"down") { this.prompt("Value",w.value,function(v) { - this.value = v; inner_value_change(this, v); }.bind(w), event,w.options ? w.options.multiline : false ); @@ -10044,6 +10048,9 @@ LGraphNode.prototype.executeAction = function(action) }//end for function inner_value_change(widget, value) { + if(widget.type == "number"){ + value = Number(value); + } widget.value = value; if ( widget.options && widget.options.property && node.properties[widget.options.property] !== undefined ) { node.setProperty( widget.options.property, value ); diff --git a/src/nodes/logic.js b/src/nodes/logic.js index fe273dc3f7..61ed4bb85a 100755 --- a/src/nodes/logic.js +++ b/src/nodes/logic.js @@ -93,10 +93,10 @@ logicAnd.title = "AND"; logicAnd.desc = "Return true if all inputs are true"; logicAnd.prototype.onExecute = function() { - ret = true; + var ret = true; for (inX in this.inputs){ if (!this.getInputData(inX)){ - ret = false; + var ret = false; break; } } @@ -119,7 +119,7 @@ logicOr.title = "OR"; logicOr.desc = "Return true if at least one input is true"; logicOr.prototype.onExecute = function() { - ret = false; + var ret = false; for (inX in this.inputs){ if (this.getInputData(inX)){ ret = true; @@ -159,8 +159,8 @@ logicCompare.title = "bool == bool"; logicCompare.desc = "Compare for logical equality"; logicCompare.prototype.onExecute = function() { - last = null; - ret = true; + var last = null; + var ret = true; for (inX in this.inputs){ if (last === null) last = this.getInputData(inX); else