 			if ret == false
 				return
 
-		@__input0.value = @correctValueForInput(shadow_v)
-		# @storeValue(value)
-		@__input0.setSelectionRange(@__shadow0.selectionStart, @__shadow0.selectionEnd)
+		if not @_readonly
+			@__input0.value = @correctValueForInput(shadow_v)
+			@__input0.setSelectionRange(@__shadow0.selectionStart, @__shadow0.selectionEnd)
 
 		# CUI.debug "shadow before init cursor", @cursor?.start.idx, "-", @cursor?.end.idx
 		@initCursor(ev)

			call: (ev) ->
				ev.preventDefault()

		handleReadOnly = (ev) =>
			@initCursor(ev)
			@showCursor(ev)
			ev.stopPropagation()
			ev.preventDefault()
			return false

		Events.listen
			node: @__input
			type: "keydown"

			false

	__initShadowInput: ->
		if not (@preventInvalidInput() or @_content_size or @_correctValueForInput or @_readonly)
			return

		if @__shadow
