]> source.dussan.org Git - vaadin-framework.git/commitdiff
Allow to close a context menu with ESC key (#11869)
authormichaelvogt <michael@vaadin.com>
Fri, 17 May 2013 09:04:33 +0000 (12:04 +0300)
committerVaadin Code Review <review@vaadin.com>
Fri, 17 May 2013 09:23:27 +0000 (09:23 +0000)
Change-Id: I4d19b6a385770204bb732893534efb6b62dea19a

client/src/com/vaadin/client/ui/VContextMenu.java

index a89854e1c836c573c72fcfd60cc803d7de865463..02ee5b07c582147eced1e3e4ee18cd5f4ab8a77c 100644 (file)
@@ -29,10 +29,13 @@ import com.google.gwt.event.dom.client.HasBlurHandlers;
 import com.google.gwt.event.dom.client.HasFocusHandlers;
 import com.google.gwt.event.dom.client.HasKeyDownHandlers;
 import com.google.gwt.event.dom.client.HasKeyPressHandlers;
+import com.google.gwt.event.dom.client.KeyCodes;
 import com.google.gwt.event.dom.client.KeyDownEvent;
 import com.google.gwt.event.dom.client.KeyDownHandler;
 import com.google.gwt.event.dom.client.KeyPressEvent;
 import com.google.gwt.event.dom.client.KeyPressHandler;
+import com.google.gwt.event.dom.client.KeyUpEvent;
+import com.google.gwt.event.dom.client.KeyUpHandler;
 import com.google.gwt.event.dom.client.LoadEvent;
 import com.google.gwt.event.dom.client.LoadHandler;
 import com.google.gwt.event.logical.shared.CloseEvent;
@@ -193,10 +196,11 @@ public class VContextMenu extends VOverlay implements SubPartAware {
      */
     class CMenuBar extends MenuBar implements HasFocusHandlers,
             HasBlurHandlers, HasKeyDownHandlers, HasKeyPressHandlers,
-            Focusable, LoadHandler {
+            Focusable, LoadHandler, KeyUpHandler {
         public CMenuBar() {
             super(true);
             addDomHandler(this, LoadEvent.getType());
+            addDomHandler(this, KeyUpEvent.getType());
         }
 
         @Override
@@ -265,6 +269,13 @@ public class VContextMenu extends VOverlay implements SubPartAware {
             delayedImageLoadExecutioner.trigger();
         }
 
+        @Override
+        public void onKeyUp(KeyUpEvent event) {
+            // Allow to close context menu with ESC
+            if (event.getNativeKeyCode() == KeyCodes.KEY_ESCAPE) {
+                hide();
+            }
+        }
     }
 
     @Override