   onSpriteMouseDown: (e) ->
     # Sprite clicks happen after stage clicks, but we need to know whether a sprite is being clicked.
     clearTimeout @backgroundAddClickTimeout
+    if e.originalEvent.nativeEvent.button == 2
+      @onSpriteContextMenu e
 
   onStageMouseDown: (e) ->
     if @addThangSprite
       # If we click on the background, we need to add @addThangSprite, but not if onSpriteMouseDown will fire.
       @backgroundAddClickTimeout = _.defer => @onExtantThangSelected {}
+    $('#contextmenu').hide()
 
   onSpriteDragged: (e) ->
     return unless @selectedExtantThang and e.thang?.id is @selectedExtantThang?.id

    super options
    @world = options.world
    @thangTypes = @supermodel.getCollection new ThangTypeSearchCollection()  # should load depended-on Components, too
    @thangTypes.once 'sync', @onThangTypesLoaded
    @thangTypes.fetch()
    $(document).bind 'contextmenu', @preventDefaultContextMenu

    # just loading all Components for now: https://github.com/codecombat/codecombat/issues/405
    @componentCollection = @supermodel.getCollection new ComponentsCollection()
    @componentCollection.once 'sync', @onComponentsLoaded
    @componentCollection.fetch()

  onThangTypesLoaded: =>
    return if @destroyed
    @supermodel.addCollection @thangTypes
    @supermodel.populateModel model for model in @thangTypes.models

    @editThangView = null
    @onThangsChanged()
    @$el.find('.thangs-column').show()
    
  preventDefaultContextMenu: (e) ->
    e.preventDefault()
    
