 
   onStylesheetsChanged: (stylesheet) ->
     @refreshScrollbars() if @containsScrollbarSelector(stylesheet)
+    @sampleFontStyling()
     @sampleBackgroundColors()
-    @remeasureCharacterWidthsIfVisibleAfterNextUpdate = true
-    @requestUpdate() if @visible
+    @remeasureCharacterWidths()
 
   onScreenLinesChanged: (change) ->
     {editor} = @props

        @gutterBackgroundColor = gutterBackgroundColor
        @requestUpdate() unless suppressUpdate

  measureLineHeightAndDefaultCharWidthIfNeeded: (prevState) ->
    if not isEqualForProperties(prevState, @state, 'lineHeight', 'fontSize', 'fontFamily')
      if @visible
        @measureLineHeightAndDefaultCharWidth()
      else
        @measureLineHeightAndDefaultCharWidthWhenShown = true
    else if @measureLineHeightAndDefaultCharWidthWhenShown and @visible
      @measureLineHeightAndDefaultCharWidthWhenShown = false
      @measureLineHeightAndDefaultCharWidth()

  measureLineHeightAndDefaultCharWidth: ->
    @refs.lines.measureLineHeightAndDefaultCharWidth()

  remeasureCharacterWidthsIfNeeded: (prevState) ->
    if not isEqualForProperties(prevState, @state, 'fontSize', 'fontFamily')
      if @visible
        @remeasureCharacterWidths()
      else
        @remeasureCharacterWidthsIfVisibleAfterNextUpdate = true
    else if @remeasureCharacterWidthsIfVisibleAfterNextUpdate and @visible
      @remeasureCharacterWidthsIfVisibleAfterNextUpdate = false
      @remeasureCharacterWidths()

  remeasureCharacterWidths: ->
    @refs.lines.remeasureCharacterWidths()

  measureScrollbars: ->
    return unless @visible

    if @visible = @isVisible()
      if wasVisible
        @measureHeightAndWidth()
        @sampleFontStyling()
        @sampleBackgroundColors()
      else
        @performInitialMeasurement()
