Bug 344181 - [Compatibility] Not all emacs keybindings override default
keybindings
If we add a binding to the table, we should make sure the binding is
correct.
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/keys/BindingService.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/keys/BindingService.java
index b5590cc..fcc92d7 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/keys/BindingService.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/keys/BindingService.java
@@ -696,6 +696,8 @@
static public MKeyBinding createORupdateMKeyBinding(MApplication application,
MBindingTable table,
Binding binding) {
+ boolean addToTable = false;
+
ParameterizedCommand parmCmd = binding.getParameterizedCommand();
String id = parmCmd.getId();
@@ -725,9 +727,9 @@
}
if (keyBinding == null) {
+ addToTable = true;
keyBinding = CommandsFactoryImpl.eINSTANCE.createKeyBinding();
keyBinding.setCommand(cmd);
- table.getBindings().add(keyBinding);
}
keyBinding.setKeySequence(binding.getTriggerSequence().format());
@@ -773,6 +775,9 @@
tags.add(EBindingService.TYPE_ATTR_TAG + ":user"); //$NON-NLS-1$
}
keyBinding.getTransientData().put(EBindingService.MODEL_TO_BINDING_KEY, binding);
+ if (addToTable) {
+ table.getBindings().add(keyBinding);
+ }
return keyBinding;
}