             {color, name} = @profile(account_id)
             locs.forEach (pos) =>
                 if now - pos.get('time') <= 60000
-                    if account_id == @props.account_id and @props.codemirror?
-                        # don't show our own cursor in codemirror active editing cells.
+                    if account_id == @props.account_id
+                        # don't show our own cursor (we just haven't made this possible due to only keying by accoun_id)
                         return
                     v.push <PositionedCursor
                         key        = {v.length}


    componentDidMount: ->
        @_mounted = true

    componentWillUnmount: ->
        @_mounted = false

    render: ->
        <span
            style        = {color:@props.color, position:'relative', cursor:'text'}
            onMouseEnter = {=>@setState(hover: true)}
            onMouseLeave = {=>setTimeout((=>if @_mounted then @setState(hover: false)), 1500)}
            >
            <span
                style={width: 0, height:'1em', borderLeft: '2px solid', position:'absolute'}


    render_static: ->
        style =
            position      : 'relative'
            height        : 0
            lineHeight    : 'normal'
            fontFamily    : 'monospace'
            whiteSpace    : 'pre'
            top           : '4px'  # must match what is used in codemirror-static.
            left          : '4px'
            pointerEvents : 'none' # so clicking in the spaces (the string position below) doesn't break click to focus cell.

        # we position using newlines and blank spaces, so no measurement is needed.
        position = ('\n' for _ in [0...@props.line]).join('') + (' ' for _ in [0...@props.ch]).join('')
