summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorFelype Santiago Ferreira <felype@vaadin.com>2014-01-28 15:36:19 +0200
committerArtur Signell <artur@vaadin.com>2014-03-24 19:25:13 +0200
commitd5ce54586a445550b3df5168fe83accb3945901e (patch)
treed69dcda80f85c9cb0ebea3b4d6031e00ab73cf2a /client
parent43b8ca588189e3fddf69020e46ada4c3ad170e9f (diff)
downloadvaadin-framework-d5ce54586a445550b3df5168fe83accb3945901e.tar.gz
vaadin-framework-d5ce54586a445550b3df5168fe83accb3945901e.zip
Ignore backspace events in modal windows (#13180)
Change-Id: Idf3ec4bc80bd015c546000e99cb6ff16e79ca5a8
Diffstat (limited to 'client')
-rw-r--r--client/src/com/vaadin/client/ui/VWindow.java11
1 files changed, 11 insertions, 0 deletions
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);
}