# HG changeset patch # User Jan Vrany # Date 1486643403 0 # Node ID 43c6888f5f9273ed2445cc3d3545d21248ab1009 # Parent 2bac4f32553f10fe5fdae805013668c2b057e121 Changed shortcut labels in menus to always show uppercase letters with optional "Shift" modifier if Shift is required. For example, shortcut label for copy is "Ctrl + C" (rather than "Ctrl+c" as before), for implementors is "Ctrl + Shift + I" (rather than "Ctrl+I"). This is in line with user interface guidelines for all modern platforms, see: * Guidelines for Keyboard User Interface Design [1] (Windows) * Keyboard input [2] (GNOME) * Keyboard Shortcuts [3] (macOS) [1]: https://msdn.microsoft.com/en-us/library/ms971323.aspx [2]: https://developer.gnome.org/hig/stable/keyboard-input.html.en [3]: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/OSXHIGuidelines/Keyboard.html diff -r 2bac4f32553f -r 43c6888f5f92 DeviceWorkstation.st --- a/DeviceWorkstation.st Wed Feb 08 23:58:18 2017 +0000 +++ b/DeviceWorkstation.st Thu Feb 09 12:30:03 2017 +0000 @@ -2918,9 +2918,10 @@ and the actual character. I.e. makes a Ctrl+A" "/ used to be '-' - ^ '+' + ^ ' + ' "Created: / 21-07-2011 / 16:04:22 / cg" + "Modified: / 09-02-2017 / 11:57:26 / Jan Vrany " ! shortKeyStringFor:symbolicOrRawKey @@ -3010,17 +3011,26 @@ rest := (untranslatedKey copyFrom:(prefix size + 1)). rest isEmpty ifTrue:[^ modifier ]. modifier := modifier , (self shortKeyPrefixSeparator). + rest size == 1 ifTrue:[ + rest first isUppercase ifTrue:[ + ^ modifier , (self modifierKeyTopFor:#Shift) , self shortKeyPrefixSeparator , rest + ] ifFalse:[ + ^ modifier , rest first asUppercase + ]. + ]. ^ modifier , rest ]. ^ untranslatedKey " - Screen current shortKeyStringFor: #Find - Screen current shortKeyStringFor: #CtrlX - Screen current shortKeyStringFor: #CursorLeft + Screen current shortKeyStringFor: #CmdBackSpace usingMap: Screen current keyboardMap + Screen current shortKeyStringFor: #Find usingMap: Screen current keyboardMap + Screen current shortKeyStringFor: #CtrlX usingMap: Screen current keyboardMap + Screen current shortKeyStringFor: #CursorLeft usingMap: Screen current keyboardMap " "Created: / 08-02-2017 / 23:28:46 / Jan Vrany " + "Modified: / 09-02-2017 / 12:01:00 / Jan Vrany " ! ! !DeviceWorkstation methodsFor:'accessing-misc'! @@ -6900,31 +6910,32 @@ |t modifiers| key == #Alt ifTrue:[ - modifiers := altModifiers + modifiers := altModifiers ] ifFalse:[ - key == #Cmd ifTrue:[ - modifiers := metaModifiers - ] + key == #Cmd ifTrue:[ + modifiers := metaModifiers + ] ]. "/ temporary kludge ... (modifiers size > 0) ifTrue:[ - (modifiers includes:'Num_Lock') ifTrue:[ - modifiers := modifiers copyWithout:'Num_Lock' - ] + (modifiers includes:'Num_Lock') ifTrue:[ + modifiers := modifiers copyWithout:'Num_Lock' + ] ]. (modifiers size > 0) ifTrue:[ - t := modifiers first. - (t includes:$_) ifTrue:[ - t := t copyTo:(t indexOf:$_)-1 - ]. - ^ t + t := modifiers first. + (t includes:$_) ifTrue:[ + t := t copyTo:(t indexOf:$_)-1 + ]. + ^ t ]. ^ key - "Created: / 28.2.1996 / 17:07:08 / cg" - "Modified: / 7.2.1998 / 16:18:17 / cg" + "Created: / 28-02-1996 / 17:07:08 / cg" + "Modified: / 07-02-1998 / 16:18:17 / cg" + "Modified: / 09-02-2017 / 11:53:58 / Jan Vrany " ! modifierKeyTranslationFor:untranslatedKey