     false
 
   componentDidUpdate: (prevProps) ->
-    {visible} = @props
-    if visible and not isEqualForProperties(prevProps, @props, 'fontSize', 'fontFamily', 'lineHeight', 'visible')
-      @measureLineHeightAndCharWidth()
+    @measureLineHeightAndCharWidthIfNeeded(prevProps)
     @clearScreenRowCaches() unless prevProps.lineHeight is @props.lineHeight
     @removeLineNodes() unless isEqualForProperties(prevProps, @props, 'showIndentGuide', 'invisibles')
     @updateLines()

  lineNodeForScreenRow: (screenRow) ->
    @lineNodesByLineId[@lineIdsByScreenRow[screenRow]]

  measureLineHeightAndCharWidth: ->
    node = @getDOMNode()
    node.appendChild(DummyLineNode)
    lineHeight = DummyLineNode.getBoundingClientRect().height

module.exports =
LinesComponent = React.createClass
  displayName: 'LinesComponent'

  measureWhenShown: false

  render: ->
    if @isMounted()
