         @emit "file.opened", nodeData
         @setBlurState()
 
+  openFileWithApp: (nodeView, contextMenuItem) ->
+    return warn "no app passed to open this file"  unless contextMenuItem
+    app = contextMenuItem.getData().title
+    KD.getSingleton("appManager").openFileWithApplication app, nodeView.getData()
+
   openFile:(nodeView, contextMenuItem)->
 
     return unless nodeView
     file = nodeView.getData()
-    app  = contextMenuItem?.getData().title or null
-    @appManager.openFile file, app
+    @appManager.openFile file
 
   previewFile:(nodeView)->
     {vmName, path} = nodeView.getData()

  cmCodeShare:     (nodeView, contextMenuItem)-> @createCodeShare nodeView
  cmOpenTerminal:  (nodeView, contextMenuItem)-> @openTerminalFromHere nodeView
  cmShowOpenWithModal: (nodeView, contextMenuItem)-> @showOpenWithModal nodeView

  cmOpenFileWithCodeMirror:(nodeView, contextMenuItem)-> @appManager.notify()


              if @alwaysOpenWith.getValue()
                appsController.emit "UpdateDefaultApp", fileExtension, appName

              appManager.openFileWithApplication appName, nodeView.getData()
              modal.destroy()
          Cancel     :
            title    : "Cancel"
