Merge "Bug 580995 - selectAll in FilterNatCombo selects also filtered items"
diff --git a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/ui/matcher/LetterOrDigitKeyEventMatcherTest.java b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/ui/matcher/LetterOrDigitKeyEventMatcherTest.java
index 30fe85e..98493b8 100644
--- a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/ui/matcher/LetterOrDigitKeyEventMatcherTest.java
+++ b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/ui/matcher/LetterOrDigitKeyEventMatcherTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2012, 2020 Original authors and others.
+ * Copyright (c) 2012, 2022 Original authors and others.
  *
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -96,5 +96,13 @@
         assertTrue(LetterOrDigitKeyEventMatcher.isLetterOrDigit('='));
         assertTrue(LetterOrDigitKeyEventMatcher.isLetterOrDigit('\\'));
         assertTrue(LetterOrDigitKeyEventMatcher.isLetterOrDigit('"'));
+        assertTrue(LetterOrDigitKeyEventMatcher.isLetterOrDigit('´'));
+        assertTrue(LetterOrDigitKeyEventMatcher.isLetterOrDigit('`'));
+        assertTrue(LetterOrDigitKeyEventMatcher.isLetterOrDigit('@'));
+        assertTrue(LetterOrDigitKeyEventMatcher.isLetterOrDigit('^'));
+        assertTrue(LetterOrDigitKeyEventMatcher.isLetterOrDigit('°'));
+        assertTrue(LetterOrDigitKeyEventMatcher.isLetterOrDigit('|'));
+        assertTrue(LetterOrDigitKeyEventMatcher.isLetterOrDigit('<'));
+        assertTrue(LetterOrDigitKeyEventMatcher.isLetterOrDigit('>'));
     }
 }
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/edit/config/DefaultEditBindings.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/edit/config/DefaultEditBindings.java
index e82a9d3..2789c38 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/edit/config/DefaultEditBindings.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/edit/config/DefaultEditBindings.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2012, 2020 Original authors and others.
+ * Copyright (c) 2012, 2022 Original authors and others.
  *
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -65,6 +65,9 @@
         uiBindingRegistry.registerKeyBinding(
                 new LetterOrDigitKeyEventMatcher(SWT.MOD2),
                 new KeyEditAction());
+        uiBindingRegistry.registerKeyBinding(
+                new LetterOrDigitKeyEventMatcher(SWT.MOD1 | SWT.MOD3),
+                new KeyEditAction());
 
         uiBindingRegistry.registerSingleClickBinding(
                 new CellEditorMouseEventMatcher(GridRegion.BODY),
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/matcher/LetterOrDigitKeyEventMatcher.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/matcher/LetterOrDigitKeyEventMatcher.java
index 1807c1c..8e326cd 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/matcher/LetterOrDigitKeyEventMatcher.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/ui/matcher/LetterOrDigitKeyEventMatcher.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2012, 2020 Original authors and others.
+ * Copyright (c) 2012, 2022 Original authors and others.
  *
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -25,7 +25,7 @@
  * be populated to an editor like e.g. the question mark. The following regular
  * expression will be used by this matcher:
  *
- * <b>[\\.:,;\\-_#\'+*~!?§$%&amp;/()\\[\\]\\{\\}=\\\\\"]</b>
+ * <b>[\\.:,;\\-_#\'+*~!?§$%&amp;/()\\[\\]\\{\\}=\\\\\"&lt;&gt;@^°´`|]</b>
  */
 public class LetterOrDigitKeyEventMatcher implements IKeyEventMatcher {
 
@@ -89,7 +89,7 @@
         return Character.isLetterOrDigit(character)
                 || Character
                         .toString(character)
-                        .matches("[\\.:,;\\-_#\'+*~!?§$%&/()\\[\\]\\{\\}=\\\\\"]"); //$NON-NLS-1$
+                        .matches("[\\.:,;\\-_#\'+*~!?§$%&/()\\[\\]\\{\\}=\\\\\"<>@^°´`|]"); //$NON-NLS-1$
     }
 
 }