       when 'blockwise'
         @vimState.selectBlockwise() unless swrap(@editor.getLastSelection()).isLinewise()
 
+    @updateNarrowedState()
+
     new Disposable =>
       @normalizeSelections(preservePreviousSelection: true)
       selection.clear(autoscroll: false) for selection in @editor.getSelections()
+      @updateNarrowedState(false)
 
   preservePreviousSelection: (selection) ->
     properties = if selection.isBlockwise?()

  # -------------------------
  hasMultiLineSelection: ->
    if @isMode('visual', 'blockwise')
      not @vimState.getLastBlockwiseSelection().isSingleRow?()
    else
      not swrap(@editor.getLastSelection()).isSingleRow()

  updateNarrowedState: ->
    isNarrowed = @isMode('visual') and @hasMultiLineSelection()
    @editorElement.classList.toggle('is-narrowed', isNarrowed)

  isNarrowed: ->
    @editorElement.classList.contains('is-narrowed')

    @editorElement.classList.add("#{@mode}-mode")
    @editorElement.classList.add(@submode) if @submode?

    @vimState.statusBarManager.update(@mode, @submode)
    @vimState.updateCursorsVisibility()
    @emitter.emit('did-activate-mode', {@mode, @submode})
