   #
   # @param [FeedItem] item The item to be removed
   #
-  # @note To have any effect on the UI, @see update() must be called after any calls ot this method.
+  # @note Unlike @see displayItem, this method triggers an immediate update.
   removeItem : (item) =>
     index = @displayedItems.findIndex((other) => other.id == item.id)
     @displayedItems[index..index] = [] unless index == -1
+
+    if @displayedItems.length == 0 && preferences.hideOnEmpty
+      @hideToolbar()
+    else
+      @send('REMOVE_ITEM', item)
 
   # Updates views with the changes made to the list of displayed items.
   #

      menuitem.disabled = true for menuitem in @itemSpecific
      @activeItem = undefined

  # Helper method to handle messages from a view.
  # @private
  onNotifyClick : (item) =>
    @removeItem(item)
    tabs.open(item.link)
    if @displayedItems.length == 0 && preferences.hideOnEmpty
      @hideToolbar()
    else
      @send('REMOVE_ITEM', item)

  onShowDetails : (item, left) =>
    @details = Panel({
      width: 400,

      when 'READY'
        @onViewReady(event.source, event.origin)
      when 'NOTIFY_CLICK'
        emit(this, 'open', message.data)
      when 'SHOW_DETAILS'
        @onShowDetails(message.data.item, message.data.left)
      when 'HIDE_DETAILS'
