       @merging.x = pos.x
       @merging.y = pos.y
 
+    return
+
   mouseup: (pos) ->
+    if @dropdown_menu?
+      if @dropdown_menu.selected >= 0
+        @dropdown_menu.options[@dropdown_menu.selected].action(this)
+      @dropdown_menu = null
+      return
+
     if @selected?
       if Date.now() - @selected.t < 200
         mdx = pos.x - @selected.mx

link_style = stroke: 'white', width: 1.5
light_link_style = stroke: 'white', width: .5
node_text_style = fill: 'white', font: '16px monospace'

setStyle = (ctx, s) ->
  ctx.fillStyle   = s.fill   if s.fill

          t: Date.now()
        return true

    if @isHandleHit(pos, idx)
      @dropdown_menu = {
        pos: pos
        options: collection_dropdown_menu
        selected: -1
      }
    return false

  isHandleHit: (pos, idx) ->
    dx = pos.x - default_node_radius*2
    dy = pos.y - default_node_radius*(2 + 3 * idx)

    return dx*dx + dy*dy < default_node_radius*default_node_radius

  mousemove: (pos) ->
    if @dropdown_menu?
      @dropdown_menu.selected = -1
      for option, i in @dropdown_menu.options
        if pos.x > @dropdown_menu.pos.x and
           pos.y >= @dropdown_menu.pos.y + menu_text_height * (i+1) and
           pos.y <  @dropdown_menu.pos.y + menu_text_height * (i+2)
          @dropdown_menu.selected = i
      return

    if @selected?
      s = @selected
      dx = (pos.x - s.mx + s.ox) - s.node.x
