Ticket #8652: ToggleDialog_TAB.patch
File ToggleDialog_TAB.patch, 5.7 KB (added by , 12 years ago) |
---|
-
src/org/openstreetmap/josm/actions/DialogsToggleAction.java
29 29 tr("Toggle dialogs panel"), 30 30 (Icon) null, /* no icon */ 31 31 tr("Toggle dialogs panel, maximize mapview"), 32 Shortcut.registerShortcut("menu:view:dialogspanel", tr("Toggle dialogs panel"),KeyEvent. CHAR_UNDEFINED, Shortcut.NONE),32 Shortcut.registerShortcut("menu:view:dialogspanel", tr("Toggle dialogs panel"),KeyEvent.VK_TAB, Shortcut.DIRECT), 33 33 true, "dialogspanel", /* register in toolbar */ 34 34 false 35 35 ); -
src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
127 127 mapFrame, ImageProvider.getCursor("crosshair", null)); 128 128 129 129 snappingShortcut = Shortcut.registerShortcut("mapmode:drawanglesnapping", 130 tr("Mode: Draw Angle snapping"), KeyEvent. VK_TAB, Shortcut.DIRECT);130 tr("Mode: Draw Angle snapping"), KeyEvent.CHAR_UNDEFINED, Shortcut.NONE); 131 131 snapChangeAction = new SnapChangeAction(); 132 132 snapCheckboxMenuItem = addMenuItem(); 133 133 snapHelper.setMenuCheckBox(snapCheckboxMenuItem); -
src/org/openstreetmap/josm/gui/ExtendedDialog.java
1 1 // License: GPL. For details, see LICENSE file. 2 2 package org.openstreetmap.josm.gui; 3 3 4 import java.awt.AWTKeyStroke; 4 5 import static org.openstreetmap.josm.tools.I18n.tr; 5 6 6 7 import java.awt.Component; 8 import java.awt.DefaultKeyboardFocusManager; 7 9 import java.awt.Dimension; 8 10 import java.awt.GridBagConstraints; 9 11 import java.awt.GridBagLayout; … … 14 16 import java.util.Arrays; 15 17 import java.util.Collections; 16 18 import java.util.List; 19 import java.util.Set; 17 20 18 21 import javax.swing.AbstractAction; 19 22 import javax.swing.Action; 23 import javax.swing.FocusManager; 20 24 import javax.swing.Icon; 21 25 import javax.swing.JButton; 22 26 import javax.swing.JCheckBox; … … 100 104 */ 101 105 private boolean placeContentInScrollPane; 102 106 107 /** 108 * TAB is de-registered as a defaultFocusTraversalKey and reused 109 * in the main application to quickly toggle dialogs. Within 110 * ExtendedDialogs however, we'll want TAB to traverse focus. 111 */ 112 private static Set<AWTKeyStroke> defaultFocusTraversalKeys = (new DefaultKeyboardFocusManager()).getDefaultFocusTraversalKeys(FocusManager.FORWARD_TRAVERSAL_KEYS); 113 103 114 // For easy access when inherited 104 115 protected Insets contentInsets = new Insets(10,5,0,5); 105 116 protected ArrayList<JButton> buttons = new ArrayList<JButton>(); … … 147 158 setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); 148 159 } 149 160 this.disposeOnClose = disposeOnClose; 161 setFocusTraversalKeys(FocusManager.FORWARD_TRAVERSAL_KEYS, defaultFocusTraversalKeys); 150 162 } 151 163 152 164 /** -
src/org/openstreetmap/josm/gui/MapFrame.java
75 75 import org.openstreetmap.josm.gui.layer.Layer; 76 76 import org.openstreetmap.josm.tools.Destroyable; 77 77 import org.openstreetmap.josm.tools.GBC; 78 import org.openstreetmap.josm.tools.Shortcut; 78 79 79 80 80 /** 81 81 * One Map frame with one dataset behind. This is the container gui class whose 82 82 * display can be set to the different views. … … 236 236 // status line below the map 237 237 statusLine = new MapStatus(this); 238 238 MapView.addLayerChangeListener(this); 239 240 // unregister TAB key if needed 241 if (Shortcut.findShortcut(KeyEvent.VK_TAB, 0) != null) { 242 unregisterTabKey(); 243 } 239 244 } 240 245 246 /** 247 * Free tabulator key (call if someone else needs it) 248 */ 249 public final void unregisterTabKey() { 250 System.out.println("Tab key unregistered"); 251 HashSet<KeyStroke> ks = new HashSet<KeyStroke>(1); 252 ks.add(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, KeyEvent.CTRL_DOWN_MASK)); 253 KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager(); 254 kfm.setDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, ks); 255 splitPane.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, ks); 256 } 257 258 241 259 public boolean selectSelectTool(boolean onlyIfModeless) { 242 260 if(onlyIfModeless && !Main.pref.getBoolean("modeless", false)) 243 261 return false; -
src/org/openstreetmap/josm/tools/Shortcut.java
245 245 private static Map<Integer, Integer> groups= new HashMap<Integer, Integer>(); 246 246 247 247 // check if something collides with an existing shortcut 248 p rivatestatic Shortcut findShortcut(int requestedKey, int modifier) {248 public static Shortcut findShortcut(int requestedKey, int modifier) { 249 249 if (modifier == getGroupModifier(NONE)) 250 250 return null; 251 251 for (Shortcut sc : shortcuts.values()) {