 		set: (value) -> 
 			if @width > @height 
 				@knob.midX = @pointForValue(value)
+				@_updateFill()
 			else 
 				@knob.midY = @pointForValue(value)
-			@_updateFill()
+				@_updateFill()
+			
 
 	_updateValue: =>
 		@emit("change:value", @value)

			return Utils.modulate(value, [0, @height], [@min, @max], true)
		
	animateToValue: (value, animationOptions={curve:"spring(300,25,0)"}) ->
		animationOptions.properties = {x:@pointForValue(value)}
		@knob.animate(animationOptions)
		event.stopPropagation()

		offsetX = (@min / @canvasScaleX()) - @min
		offsetY = (@min / @canvasScaleY()) - @min

		if @width > @height 
			@value = @valueForPoint(Events.touchEvent(event).clientX - @screenScaledFrame().x) / @canvasScaleX() - offsetX
		else 
			@value = @valueForPoint(Events.touchEvent(event).clientY - @screenScaledFrame().y) / @canvasScaleY() - offsetY

		@knob.draggable._touchStart(event)
		@_updateValue()

