anchor.diff:              if not window.NodeGrid.IsFocused then
                   window.NodeGrid.Focus() |> ignore)
   
  -        // on resize, keep selected node in view, update the page size when form is resized
  +        // on resize, keep selected node in view, update the page size
           window.NodeGrid.SizeChanged.Add (fun _ ->
               this.KeepSelectedInView()
               match this.ItemsPerPage with
  -            | Some i -> model.PageSize <- i
  -            | None -> ())
  +                | Some i -> model.PageSize <- i
  +                | None -> ())
   
  -        // escape always resets the input mode
  -        window.PreviewKeyDown.Add (onKey Key.Escape (fun () ->
  +        // escape and lost focus resets the input mode
  +        window.PreviewKeyDown.Add (onKey Key.Escape (fun _ ->
               model.Status <- ""
               model.CommandInputMode <- None))
  +        window.CommandBox.LostFocus.Add (fun _ -> model.CommandInputMode <- None)
   
  -        window.CommandBox.LostFocus.Add (fun _ -> model.CommandInputMode <- None)
  +        // make sure selected item gets set to the cursor
  +        let desiredCursor = model.Cursor
  +        model.Cursor <- -1
  +        window.Loaded.Add (fun _ -> model.Cursor <- desiredCursor)
   
       override this.EventStreams = [
           window.PathBox.PreviewKeyDown |> onKeyFunc Key.Enter (fun () -> OpenPath window.PathBox.Text)
  
positive.code:                 window.CommandBox.Text <- model.CommandText |> BindingOptions.UpdateSourceOnChange
              @>
  
          model.OnPropertyChanged <@ model.CommandTextSelection @> (fun (start, len) ->
              window.CommandBox.Select(start, len))
  
  
negative.code:         window.NodeGrid.AddColumn("Modified", converter = ValueConverters.OptionValue(), format = "yyyy-MM-dd  HH:mm")
          window.NodeGrid.AddColumn("SizeFormatted", "Size", alignRight = true)
  
          // simple bindings
          Binding.OfExpression
              <@
  