   handleSubjectFrameLoad: (e) ->
     if e.target.tagName.toUpperCase() is 'IMG'
       {naturalWidth, naturalHeight} = e.target
-      unless @state.naturalWidth is naturalWidth and @state.naturalHeight is naturalHeight
-        @setState {naturalWidth, naturalHeight}
+      if @state.naturalWidth is naturalWidth and @state.naturalHeight is naturalHeight
+        @handleResize()
+      else
+        @setState {naturalWidth, naturalHeight}, @handleResize
       @props.onLoad? arguments...
 
   handleFrameChange: (frame) ->

  updateAnnotations: ->
    @props.classification.update
      annotations: @props.classification.annotations

  handleInitStart: (e) ->
    taskDescription = @props.workflow.tasks[@props.annotation.task]

  getInitialState: ->
    naturalWidth: 0
    naturalHeight: 0
    scale:
      horizontal: 1
      vertical: 1
    showWarning: false
    frame: 0
    selectedMark: null
    detailsTooltipOffset: ''

  componentDidMount: ->
    addEventListener 'resize', @handleResize

  componentWillUnmount: ->
    removeEventListener 'resize', @handleResize

  getEventOffset: (e) ->
    rect = @refs.sizeRect.getDOMNode().getBoundingClientRect()
    scale = @state.scale
    x = (e.pageX - pageXOffset - rect.left) / scale.horizontal
    y = (e.pageY - pageYOffset - rect.top) / scale.vertical
    {x, y}
