From: Vampire <Vampire@jEdit.org> - 2012-09-28 19:23:42
|
For changing the menu mnemonic you do not even have to restart jEdit. You just set the property and it is immediately applied. So you can e. g. open the Action Bar (C+ENTER) and type in there "help-menu.label=He$lp<ENTER>" and your A+h shortcut works, the help menu will immediately react to A+l, or do "help-menu.label=Help<ENTER>" to completely diable the mnemonic. Vampire schrieb: > If you want to use A+h for something different than "help" menu, you can > change the Mnemonic of the Help menu to be something different or > non-existent. > > Currently it is really bad user-experience if you change your UI > language (or get it changed by default with upgrading to 5.0) and being > unable to access the menu bar menus by the accelerators that are shown. > > Maybe another option would be to remove the mnemonic if the shortcut is > used otherwise, but then you always have to update this state if you > change keyboard mappings also. And then you cannot reach the menu by a > shortcut which is also very bad. > > Currently if I start a genuine jEdit 5.0 without former settings on a > german system, I see "Datei" with "D" as mnemonic for "File" menu, but > pressing A+d deletes the character to the right of the caret. There are > 3 such cases for german localization (Bug #3528208) and any added > localization can add such cases if not present already. > That is a very bad user experience if you try to open a menu and instead > delete a character. > > I do not think it is an option to remove the colliding key bindings or > mnemonics, because with every keymap or every localization there could > be new conflicts introduced. There has to be some generic solution. I > think that what the users actually sees (the menu mnemonic) should have > precedence and if someone really wants to remap those shortcuts, he > should change the mnemonic of the menu. > > Alan Ezust schrieb: > >> I totally disagree with this change, and making user defined shortcuts take >> precedence over the mnenomics is something that was done in jEdit 4.3, one >> of the first tickets i opened against jEdit. >> >> Now my own shortcut for Alt+H doesn't work and always brings up the "help" >> menu. Please undo that. >> >> >> On Fri, Sep 28, 2012 at 10:41 AM, <Vam...@us...> wrote: >> >> >> >>> Revision: 22270 >>> http://jedit.svn.sourceforge.net/jedit/?rev=22270&view=rev >>> Author: Vampire0 >>> Date: 2012-09-28 17:41:29 +0000 (Fri, 28 Sep 2012) >>> Log Message: >>> ----------- >>> #3017650: Handle menu bar mnemonics with precedence over otherwise defined >>> shortcuts as they are shown visually to the user >>> >>> Modified Paths: >>> -------------- >>> jEdit/trunk/doc/CHANGES.txt >>> jEdit/trunk/org/gjt/sp/jedit/View.java >>> >>> Modified: jEdit/trunk/doc/CHANGES.txt >>> =================================================================== >>> --- jEdit/trunk/doc/CHANGES.txt 2012-09-28 17:33:59 UTC (rev 22269) >>> +++ jEdit/trunk/doc/CHANGES.txt 2012-09-28 17:41:29 UTC (rev 22270) >>> @@ -11,6 +11,9 @@ >>> >>> {{{ Bug fixes >>> >>> +- Handle menu bar mnemonics with precedence over otherwise defined >>> shortcuts as >>> + they are shown visually to the user (#3528208 Björn "Vampire" Kautler) >>> + >>> - Fix keymap duplication (Björn "Vampire" Kautler) >>> >>> - Fix broken keymap properties (Björn "Vampire" Kautler) >>> >>> Modified: jEdit/trunk/org/gjt/sp/jedit/View.java >>> =================================================================== >>> --- jEdit/trunk/org/gjt/sp/jedit/View.java 2012-09-28 17:33:59 UTC >>> (rev 22269) >>> +++ jEdit/trunk/org/gjt/sp/jedit/View.java 2012-09-28 17:41:29 UTC >>> (rev 22270) >>> @@ -1837,8 +1837,21 @@ >>> */ >>> private void propertiesChanged() >>> { >>> - setJMenuBar(GUIUtilities.loadMenuBar("view.mbar")); >>> + JMenuBar mbar = GUIUtilities.loadMenuBar("view.mbar"); >>> >>> + // menu bar mnemonics take precedence over other shortcut >>> definitions >>> + for (int i = 0; i < mbar.getMenuCount(); i++) >>> + { >>> + JMenu menu = mbar.getMenu(i); >>> + int mnemonic = menu.getMnemonic(); >>> + if (mnemonic != 0) >>> + { >>> + inputHandler.removeKeyBinding("A+" + >>> Character.toLowerCase((char) mnemonic)); >>> + } >>> + } >>> + >>> + setJMenuBar(mbar); >>> + >>> loadToolBars(); >>> >>> showFullPath = >>> jEdit.getBooleanProperty("view.showFullPath"); >>> >>> This was sent by the SourceForge.net collaborative development platform, >>> the world's largest Open Source development site. >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Got visibility? >>> Most devs has no idea what their production app looks like. >>> Find out how fast your code is with AppDynamics Lite. >>> http://ad.doubleclick.net/clk;262219671;13503038;y? >>> http://info.appdynamics.com/FreeJavaPerformanceDownload.html >>> _______________________________________________ >>> jEdit-CVS mailing list >>> jEd...@li... >>> https://lists.sourceforge.net/lists/listinfo/jedit-cvs >>> >>> >>> >> >> > > |