         padding:          "0"
         textAlign:        options.align || "left"
         verticalAlign:    "bottom"
+        overflow:         "hidden"
       on:
-        keydown:  (keyboardEvent) => @getCanvasElement()?.keyDownEvent keyboardEvent
+        cut:      (keyboardEvent) => @delayedCheckIfValueChanged()
+        paste:    (keyboardEvent) => @delayedCheckIfValueChanged()
+        drop:     (keyboardEvent) => @delayedCheckIfValueChanged()
+        keydown:  (keyboardEvent) => @delayedCheckIfValueChanged();@getCanvasElement()?.keyDownEvent keyboardEvent
         keyup:    (keyboardEvent) => @getCanvasElement()?.keyUpEvent keyboardEvent
         change:   (event) => @checkIfValueChanged()
         input:    (event) => @checkIfValueChanged()

    selectionEnd: (v)-> @domElement.selectionEnd = v

  insertAtCursor: (insertValue) ->
    log insertAtCursor: {insertValue}
    # //IE support
    # if (document.selection) {
    #     @domElement.focus();
    #     sel = document.selection.createRange();
    #     sel.text = insertValue;
    # }
    # //MOZILLA and others
    if @domElement.selectionStart || @domElement.selectionStart == '0'
      {value, selectionStart, selectionEnd} = @domElement
      log insertAtCursor: {value, selectionStart, selectionEnd,insertValue}

  normalizeAuto = (v) ->
    if v?
      v || "off"
    else "off"

  constructor: (options = {}) ->
    @_focusEventsDisabled = false
