MenuPanel.st
changeset 5320 63b2866bfd30
parent 5276 424244db8cc0
child 5321 999f2dd4abeb
child 5328 4285558b7c86
--- 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