? keyboard.diff Index: libsrc/org/netbeans/editor/BaseKit.java =================================================================== RCS file: /cvs/editor/libsrc/org/netbeans/editor/BaseKit.java,v retrieving revision 1.108.2.1 diff -c -r1.108.2.1 BaseKit.java *** libsrc/org/netbeans/editor/BaseKit.java 5 Mar 2004 08:19:26 -0000 1.108.2.1 --- libsrc/org/netbeans/editor/BaseKit.java 15 Mar 2004 13:20:15 -0000 *************** *** 772,778 **** int mod = evt.getModifiers(); boolean ctrl = ((mod & ActionEvent.CTRL_MASK) != 0); boolean alt = ((mod & ActionEvent.ALT_MASK) != 0); ! if ((alt && !ctrl) || (ctrl && !alt)) { return; } --- 772,778 ---- int mod = evt.getModifiers(); boolean ctrl = ((mod & ActionEvent.CTRL_MASK) != 0); boolean alt = ((mod & ActionEvent.ALT_MASK) != 0); ! if (ctrl && !alt) { return; } Index: libsrc/org/netbeans/editor/MultiKeymap.java =================================================================== RCS file: /cvs/editor/libsrc/org/netbeans/editor/MultiKeymap.java,v retrieving revision 1.25 diff -c -r1.25 MultiKeymap.java *** libsrc/org/netbeans/editor/MultiKeymap.java 17 Feb 2004 13:06:05 -0000 1.25 --- libsrc/org/netbeans/editor/MultiKeymap.java 15 Mar 2004 13:20:15 -0000 *************** *** 25,30 **** --- 25,32 ---- import javax.swing.Action; import javax.swing.AbstractAction; + import java.lang.reflect.Method; + /** * Keymap that is capable to work with MultiKeyBindings * *************** *** 208,213 **** --- 210,231 ---- && (key.getModifiers() & InputEvent.CTRL_MASK) == 0 // Ctrl not pressed ) { boolean patch = true; + + if (ret == null) { + try { + Class lookupClass = Class.forName("org.openide.util.Lookup"); + Method defaultMethod = lookupClass.getDeclaredMethod("getDefault",new Class[0]); + Method lookupMethod = lookupClass.getDeclaredMethod("lookup",new Class[]{Class.class}); + Object lookup = defaultMethod.invoke(null,new Object[0]); + Keymap map = (Keymap)lookupMethod.invoke(lookup,new Object[]{Keymap.class}); + // Keymap map = Lookup.getDefault().lookup(Keymap.class); + if (map.getAction (key) == null) + patch = false; + } catch (Exception ex) { + System.out.println("Keyboard error :"); + ex.printStackTrace(); + } + } if (key.getKeyChar() == 0 || key.getKeyChar() == KeyEvent.CHAR_UNDEFINED) { switch (key.getKeyCode()) { case KeyEvent.VK_ALT: // don't patch single Alt