From: Vampire <Vampire@jEdit.org> - 2012-09-28 23:26:22
|
How often do you think does it happen that a user wants to bind a keystroke that is a main menu mnemonic to some different action? (submenus are not affected, only the main menus you see directly in the menu bar) If we would introduce such a logic, there would also be many corner cases to consider. What happens with bindings already there or added in properties during jEdit being closed? (The newly installed use-case I described e. g.) What happens when you change keymaps and the new keymap contains a conflicting key binding? What happens when you change localization ant the new menu bar contains conflicting mnemonics? ... Alan Ezust schrieb: > If a user wants to bind Alt+H to another action from the Shortcut options > pane, perhaps jEdit should search for labels > that have H as a mnemonic and ask the user if they want to remove it at the > time of binding it to something else? > If your change actually did that, then it would not be a regression. While > I can fix it in my own properties (by removing the mnemonic entirely) > should users be forced to do this whenever they want to override a mnemonic? > > > > On Fri, Sep 28, 2012 at 12:23 PM, Vampire <Va...@je...> wrote: > > >> ** >> 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...> <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 lis...@li...https://lists.sourceforge.net/lists/listinfo/jedit-cvs >> >> >> >> >> > > |