       else
           mark = @data.getMark row
 
-      lineContents = renderLine lineData, {
+      options = {
         cursors: cursors
         highlights: highlights
-        onclick: (x) =>
+        marks: (do @data.getAllMarks)
+        mark: mark
+      }
+
+      if @mode == MODES.NORMAL or @mode == MODES.INSERT
+        options.onclick = (x) =>
           @cursor.set row, x.column
           do @render
-        marks: (do @data.getAllMarks)
-        mark: mark
-        onclickmark: (row) =>
+      if @mode == MODES.NORMAL
+        options.onclickmark = (row) =>
           @rootInto row
           do @save
           do @render
-      }
+      lineContents = renderLine lineData, options
       [].push.apply results, lineContents
 
       if results.length == 0

    if url != null
      divoptions.href = url

    if markrow != null
      divoptions.onclick = options.onclickmark.bind @, markrow
    else if options.onclick?
      divoptions.onclick = options.onclick.bind @, x

        row = @data.getParent row

      makeCrumb = (row, text) =>
        options = {}
        if @mode == MODES.NORMAL
          options.onclick = () =>
            @reroot row
            do @save
            do @render
        return virtualDom.h 'span', { className: 'crumb' }, [
                 virtualDom.h 'a', options, [ text ]
               ]

      crumbNodes = []
      crumbNodes.push(makeCrumb @data.root, (virtualDom.h 'icon', {className: 'fa fa-home'}))
