     atom.tooltips.add @dom,
       title: => "Currently working in module #{@current()}"
 
+    # @NOTE: Grammar selector has `priority` 10 and thus set the it to a bit lower
+    #        than that to avoid collision that may cause unexpected result.
+    @tile = @statusBar.addRightTile item: @dom, priority: 5
+    disposable = new Disposable(=>
+      @tile.destroy()
+      delete @tile)
+    @subs.add(disposable)
+    disposable
+
   updateView: (m) ->
+    return unless @tile?
     if not m?
-      @tile?.destroy()
-      delete @tile
+      @dom.style.display = 'none'
     else
       {main, sub, inactive, subInactive} = m
       if main is @follow
         return @updateView @lastEditorModule
-      @tile ?= @statusBar?.addRightTile item: @dom, priority: 10
+      @dom.style.display = ''
       @mainView.innerText = main or 'Main'
       if sub
         @subView.innerText = sub


  consumeStatusBar: (bar) ->
    @statusBar = bar
    @updateView @_current

    @subs.add atom.workspace.observeActivePaneItem (item) => @updateForItem item
    @subs.add client.onAttached => @updateForItem()
    @subs.add client.onDetached => @updateForItem()

  deactivate: ->
    @subs.dispose()
