From d5ce54586a445550b3df5168fe83accb3945901e Mon Sep 17 00:00:00 2001 From: Felype Santiago Ferreira Date: Tue, 28 Jan 2014 15:36:19 +0200 Subject: Ignore backspace events in modal windows (#13180) Change-Id: Idf3ec4bc80bd015c546000e99cb6ff16e79ca5a8 --- client/src/com/vaadin/client/ui/VWindow.java | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'client') diff --git a/client/src/com/vaadin/client/ui/VWindow.java b/client/src/com/vaadin/client/ui/VWindow.java index ad9d0eac7e..f83bc83c8d 100644 --- a/client/src/com/vaadin/client/ui/VWindow.java +++ b/client/src/com/vaadin/client/ui/VWindow.java @@ -30,6 +30,7 @@ import com.google.gwt.event.dom.client.BlurEvent; import com.google.gwt.event.dom.client.BlurHandler; import com.google.gwt.event.dom.client.FocusEvent; import com.google.gwt.event.dom.client.FocusHandler; +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.ScrollEvent; @@ -144,6 +145,8 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner, private boolean closable = true; + private boolean hasFocus; + /** * If centered (via UIDL), the window should stay in the centered -mode * until a position is received from the server, or the user moves or @@ -1048,6 +1051,10 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner, @Override public void onKeyDown(KeyDownEvent event) { + if (hasFocus && event.getNativeKeyCode() == KeyCodes.KEY_BACKSPACE) { + event.preventDefault(); + } + if (shortcutHandler != null) { shortcutHandler .handleKeyboardEvent(Event.as(event.getNativeEvent())); @@ -1057,6 +1064,8 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner, @Override public void onBlur(BlurEvent event) { + hasFocus = false; + if (client.hasEventListeners(this, EventId.BLUR)) { client.updateVariable(id, EventId.BLUR, "", true); } @@ -1064,6 +1073,8 @@ public class VWindow extends VOverlay implements ShortcutActionHandlerOwner, @Override public void onFocus(FocusEvent event) { + hasFocus = true; + if (client.hasEventListeners(this, EventId.FOCUS)) { client.updateVariable(id, EventId.FOCUS, "", true); } -- cgit v1.2.3