You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by Sam Ruby <ru...@apache.org> on 2015/12/13 16:14:56 UTC

[whimsy.git] [34/37] Commit bfb37af: hide context menu whenever a click is received outside the menu

Commit bfb37affe48395a9c112e3db37e3560799087042:
    hide context menu whenever a click is received outside the menu


Branch: refs/heads/secmail
Author: Sam Ruby <ru...@intertwingly.net>
Committer: Sam Ruby <ru...@intertwingly.net>
Pusher: rubys <ru...@apache.org>

------------------------------------------------------------
views/parts.js.rb                                            | ++++++++++++ 
------------------------------------------------------------
12 changes: 12 additions, 0 deletions.
------------------------------------------------------------


diff --git a/views/parts.js.rb b/views/parts.js.rb
index 9ac52e1..5851fa8 100644
--- a/views/parts.js.rb
+++ b/views/parts.js.rb
@@ -19,8 +19,10 @@ def render
 
   def componentDidMount()
     $menu.style.display = :none
+    window.onmousedown = self.click
   end
 
+  # position and show context menu
   def menu(event)
     @selected = event.currentTarget.textContent
     $menu.style.left = event.clientX + 'px'
@@ -29,4 +31,14 @@ def menu(event)
     $menu.style.display = :block
     event.preventDefault()
   end
+
+  # hide context menu whenever a click is received outside the menu
+  def click(event)
+    target = event.target
+    while target
+      return if target.class == 'contextMenu'
+      target = target.parentNode
+    end
+    $menu.style.display = :none
+  end
 end