         if @solo is on then @$items.removeClass @classNames.expanded
 
       $item.toggleClass @classNames.expanded, expanded
-
-      $item.trigger @evt('toggle'), [expanded] unless silently is on
+      @$expandedItem = if expanded then $item else null
+
+      $item.trigger @evt('expand'), [expanded] unless silently is on
+      return
+
+    toggleExpandedItemFocus: ($item, focused) ->
+      return unless $item?.hasClass @classNames.expanded
+      delay = if focused then 0 else 1000
+      @toggleItemFocus $item, focused, delay
+      return
+
+    toggleItemFocus: ($item, focused, delay) ->
+      return unless $item?
+      $item.toggleClass @classNames.focused, focused
+      @_dimTimeout = setTimeout =>
+        return unless focused is $item.hasClass(@classNames.focused)
+        @$el.toggleClass @classNames.dimmed, focused
+        return
+      , delay
       return
 
     _adjustItemToBottomEdge: ($item) ->


    _reLayoutItems: ->
      @$items.each (i, item) =>
        @toggleItem $(item), off
        return

      _.delay =>

      $item.css { left: 'auto', right: 0 }
      return

    _clearDimTimeout: ->
      return unless @_dimTimeout?
      clearTimeout @_dimTimeout
      @_dimTimeout = null
      return

    _isBottomEdgeItem: (i) -> (i + 1) > (@$items.length - @metrics.rowSize)

