From 16c54b33c4c66edfc20f42b09e1726de67931c96 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 10 Oct 2016 22:43:03 +0300 Subject: Make modal window block shortcuts for underlying components (#20366) Change-Id: Ibb3b52b652d77a1bfa786417b1c92fd0a578035f --- client/src/main/java/com/vaadin/client/ui/VWindow.java | 11 +++++++++++ client/src/main/java/com/vaadin/client/ui/ui/UIConnector.java | 3 +++ 2 files changed, 14 insertions(+) (limited to 'client') diff --git a/client/src/main/java/com/vaadin/client/ui/VWindow.java b/client/src/main/java/com/vaadin/client/ui/VWindow.java index 5a316933ff..8d64bb6b4f 100644 --- a/client/src/main/java/com/vaadin/client/ui/VWindow.java +++ b/client/src/main/java/com/vaadin/client/ui/VWindow.java @@ -1519,4 +1519,15 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner, return WINDOW_ORDER_HANDLER.addHandler(WindowOrderEvent.getType(), handler); } + + /** + * Checks if a modal window is currently open. + * + * @return true if a modal window is open, false + * otherwise. + */ + public static boolean isModalWindowOpen() { + return Document.get().getBody() + .hasClassName(MODAL_WINDOW_OPEN_CLASSNAME); + } } diff --git a/client/src/main/java/com/vaadin/client/ui/ui/UIConnector.java b/client/src/main/java/com/vaadin/client/ui/ui/UIConnector.java index 677abbbecb..180898453b 100644 --- a/client/src/main/java/com/vaadin/client/ui/ui/UIConnector.java +++ b/client/src/main/java/com/vaadin/client/ui/ui/UIConnector.java @@ -526,6 +526,9 @@ public class UIConnector extends AbstractSingleComponentContainerConnector shortcutContextWidget.addDomHandler(new KeyDownHandler() { @Override public void onKeyDown(KeyDownEvent event) { + if (VWindow.isModalWindowOpen()) { + return; + } if (getWidget().actionHandler != null) { Element target = Element .as(event.getNativeEvent().getEventTarget()); -- cgit v1.2.3