Changeset 8081 in josm
- Timestamp:
- 2015-02-17T23:11:29+01:00 (10 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/gui
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/MainMenu.java
r8075 r8081 7 7 8 8 import java.awt.Component; 9 import java.awt.DefaultFocusTraversalPolicy; 9 10 import java.awt.Dimension; 10 11 import java.awt.GraphicsEnvironment; … … 20 21 import javax.swing.Box; 21 22 import javax.swing.JCheckBoxMenuItem; 22 import javax.swing.JComponent;23 23 import javax.swing.JMenu; 24 24 import javax.swing.JMenuBar; … … 797 797 add(helpMenu, about); 798 798 add(Box.createHorizontalGlue()); 799 add(createSearchField()); 799 final DisableShortcutsOnFocusGainedTextField searchField = createSearchField(); 800 add(searchField); 801 802 // Do not let search field take the focus automatically 803 setFocusTraversalPolicyProvider(true); 804 setFocusTraversalPolicy(new DefaultFocusTraversalPolicy() { 805 @Override 806 protected boolean accept(Component aComponent) { 807 return super.accept(aComponent) && !searchField.equals(aComponent); 808 } 809 }); 800 810 801 811 windowMenu.addMenuListener(menuSeparatorHandler); … … 818 828 * Create search field. 819 829 */ 820 private JComponentcreateSearchField() {830 private DisableShortcutsOnFocusGainedTextField createSearchField() { 821 831 DisableShortcutsOnFocusGainedTextField searchField = new DisableShortcutsOnFocusGainedTextField() { 822 832 @Override … … 996 1006 currentSearchText = searchTerm; 997 1007 if (searchTerm.length() == 0) { 998 //No text to search 1008 // No text to search 999 1009 hideMenu(); 1000 1010 return; … … 1003 1013 List<JMenuItem> searchResult = mainMenu.findMenuItems(currentSearchText); 1004 1014 if(searchResult.size() == 0) { 1005 //Nothing found 1015 // Nothing found 1006 1016 hideMenu(); 1007 1017 return; … … 1009 1019 1010 1020 if(searchResult.size() > 20) { 1011 //Too many items found... 1021 // Too many items found... 1012 1022 searchResult = searchResult.subList(0, 20); 1013 1023 } 1014 1024 1015 //Update Popup menu 1025 // Update Popup menu 1016 1026 searchResultsMenu.removeAll(); 1017 1027 for (JMenuItem foundItem : searchResult) { 1018 1028 searchResultsMenu.add(foundItem.getText()).setAction(foundItem.getAction()); 1019 1029 } 1030 // Put menu right under search field 1020 1031 searchResultsMenu.pack(); 1021 searchResultsMenu.show(mainMenu, searchField.getX(), searchField.getY() + searchField.getHeight()); //Put menu right under search field 1022 1023 searchField.grabFocus(); //This is tricky. User still is able to edit search text. While Up and Down keys are handled by Popup Menu. 1032 searchResultsMenu.show(mainMenu, searchField.getX(), searchField.getY() + searchField.getHeight()); 1033 1034 // This is tricky. User still is able to edit search text. While Up and Down keys are handled by Popup Menu. 1035 searchField.requestFocusInWindow(); 1024 1036 } 1025 1037 … … 1027 1039 searchResultsMenu.setVisible(false); 1028 1040 } 1029 1030 1041 } 1031 1042 } -
trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
r8072 r8081 587 587 dialogsPanel.reconstruct(Action.ELEMENT_SHRINKS, null); 588 588 hideNotify(); 589 if (Main.map != null) {590 // To avoid menu bar search field from taking focus when a toggle dialog is closed591 Main.map.requestFocusInWindow();592 }593 589 } 594 590 }
Note:
See TracChangeset
for help on using the changeset viewer.