--- a/MenuPanel.st Sun Nov 06 11:49:22 2016 +0100
+++ b/MenuPanel.st Mon Nov 07 15:00:47 2016 +0100
@@ -5023,7 +5023,7 @@
|menu rawKey logicalKey list item selectableItem|
superMenu notNil ifTrue:[
- ^ superMenu processShortcut:aKeyEvent
+ ^ superMenu processShortcut:aKeyEvent
].
shown ifFalse:[^ false].
@@ -5034,7 +5034,7 @@
( #( CursorDown CursorUp CursorRight CursorLeft Return Escape
) includes:logicalKey
) ifTrue:[
- ^ false.
+ ^ false.
].
rawKey := aKeyEvent rawKey.
@@ -5043,47 +5043,50 @@
"/ special for Cmd-only event (i.e. ALT-only)
aKeyEvent isKeyReleaseEvent ifTrue:[
- selection isNil ifTrue:[
- prevFocusView := self windowGroup focusView.
- self requestFocus. "/ self windowGroup focusView:self.
- selectableItem := self firstItemSelectable.
- self selection:selectableItem openMenu:false.
- ] ifFalse:[
- prevFocusView requestFocus.
- self selection:nil.
- ].
- ^ true
- ].
-
- [true] whileTrue:[
- list := menu
- selectItemIndicesFor:[:el|
- |skey|
-
- item := el.
- el ignoreShortcutKeys ifTrue:[
- false
- ] ifFalse:[
- skey := el shortcutKey.
- skey == rawKey or:[skey == logicalKey]
- ]
- ]
- maxDepth:(self class maxShortCutSearchLevel) from:1 to:99999
- ignoreSubmenuBlock:[:anItem | anItem ignoreShortcutKeys ].
-
- list size ~~ 0 ifTrue:[
- "/ has item which responds to the shortcut
- item hasSubmenu ifFalse:[
- menu accept:item
- ] ifTrue:[
- menu processCollectedShortcutIndices:list.
- self requestFocus. "/ self windowGroup focusView:self.
- ].
- ^ true
- ].
-
- menu == self ifTrue:[ ^ false ].
- menu := self.
+ selection isNil ifTrue:[
+ prevFocusView := self windowGroup focusView.
+ self requestFocus. "/ self windowGroup focusView:self.
+ selectableItem := self firstItemSelectable.
+ self selection:selectableItem openMenu:false.
+ ] ifFalse:[
+ prevFocusView requestFocus.
+ self selection:nil.
+ ].
+ ^ true
+ ].
+
+ Menu::NeedResourcesQuery answer:false do:[
+
+ [true] whileTrue:[
+ list := menu
+ selectItemIndicesFor:[:el|
+ |skey|
+
+ item := el.
+ el ignoreShortcutKeys ifTrue:[
+ false
+ ] ifFalse:[
+ skey := el shortcutKey.
+ skey == rawKey or:[skey == logicalKey]
+ ]
+ ]
+ maxDepth:(self class maxShortCutSearchLevel) from:1 to:99999
+ ignoreSubmenuBlock:[:anItem | anItem ignoreShortcutKeys ].
+
+ list size ~~ 0 ifTrue:[
+ "/ has item which responds to the shortcut
+ item hasSubmenu ifFalse:[
+ menu accept:item
+ ] ifTrue:[
+ menu processCollectedShortcutIndices:list.
+ self requestFocus. "/ self windowGroup focusView:self.
+ ].
+ ^ true
+ ].
+
+ menu == self ifTrue:[ ^ false ].
+ menu := self.
+ ].
].
^ false "/ never reached