? kb.patch_35.diff Index: org/netbeans/editor/BaseKit.java =================================================================== RCS file: /cvs/editor/libsrc/org/netbeans/editor/BaseKit.java,v retrieving revision 1.86 diff -c -r1.86 BaseKit.java *** org/netbeans/editor/BaseKit.java 27 Feb 2003 23:36:16 -0000 1.86 --- org/netbeans/editor/BaseKit.java 10 Apr 2003 14:34:11 -0000 *************** *** 742,748 **** int mod = evt.getModifiers(); boolean ctrl = ((mod & ActionEvent.CTRL_MASK) != 0); boolean alt = ((mod & ActionEvent.ALT_MASK) != 0); ! if ((alt && !ctrl) || (ctrl && !alt)) { return; } --- 742,748 ---- int mod = evt.getModifiers(); boolean ctrl = ((mod & ActionEvent.CTRL_MASK) != 0); boolean alt = ((mod & ActionEvent.ALT_MASK) != 0); ! if (ctrl && !alt) { return; } Index: org/netbeans/editor/MultiKeymap.java =================================================================== RCS file: /cvs/editor/libsrc/org/netbeans/editor/MultiKeymap.java,v retrieving revision 1.24 diff -c -r1.24 MultiKeymap.java *** org/netbeans/editor/MultiKeymap.java 9 Nov 2001 16:10:23 -0000 1.24 --- org/netbeans/editor/MultiKeymap.java 10 Apr 2003 14:34:14 -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