mirror of
https://github.com/atom/atom.git
synced 2026-01-23 13:58:08 -05:00
It seems that chrome now automatically selects all text in an input element when its containing shadow root gains focus, as if it had been reached by typing tab. Setting the input's tabindex to -1 prevents this behavior. Signed-off-by: Nathan Sobo <nathan@github.com>
33 lines
1.0 KiB
CoffeeScript
33 lines
1.0 KiB
CoffeeScript
module.exports =
|
|
class InputComponent
|
|
constructor: ->
|
|
@domNode = document.createElement('input')
|
|
@domNode.classList.add('hidden-input')
|
|
@domNode.setAttribute('tabindex', -1)
|
|
@domNode.setAttribute('data-react-skip-selection-restoration', true)
|
|
@domNode.style['-webkit-transform'] = 'translateZ(0)'
|
|
@domNode.addEventListener 'paste', (event) -> event.preventDefault()
|
|
|
|
getDomNode: ->
|
|
@domNode
|
|
|
|
updateSync: (state) ->
|
|
@oldState ?= {}
|
|
newState = state.hiddenInput
|
|
|
|
if newState.top isnt @oldState.top
|
|
@domNode.style.top = newState.top + 'px'
|
|
@oldState.top = newState.top
|
|
|
|
if newState.left isnt @oldState.left
|
|
@domNode.style.left = newState.left + 'px'
|
|
@oldState.left = newState.left
|
|
|
|
if newState.width isnt @oldState.width
|
|
@domNode.style.width = newState.width + 'px'
|
|
@oldState.width = newState.width
|
|
|
|
if newState.height isnt @oldState.height
|
|
@domNode.style.height = newState.height + 'px'
|
|
@oldState.height = newState.height
|