dont catch all messageNotUnderstoods
authorClaus Gittinger <cg@exept.de>
Tue, 19 May 1998 19:45:20 +0200
changeset 890 28c4470c6858
parent 889 7879fffb4810
child 891 f4d2ed9d3b88
dont catch all messageNotUnderstoods (only those which have the aspect as selector)
MenuPanel.st
--- a/MenuPanel.st	Mon May 18 21:56:38 1998 +0200
+++ b/MenuPanel.st	Tue May 19 19:45:20 1998 +0200
@@ -3353,9 +3353,9 @@
         self submenu:subm.
     ].
 
-  ^ subMenu
-
-    "Modified: / 30.1.1998 / 00:00:20 / cg"
+    ^ subMenu
+
+    "Modified: / 19.5.1998 / 19:36:56 / cg"
 !
 
 submenuChannel
@@ -4076,34 +4076,55 @@
 !
 
 findSubMenuIn:aRecv
-    |subm argument|
+    |subm argument sel|
 
     subm := nil.
 
     aRecv notNil ifTrue:[
         submenuChannel last ~~ $: ifTrue:[
-            Object messageNotUnderstoodSignal handle:[:ex| ] do:[
+            Object messageNotUnderstoodSignal handle:[:ex| 
+                ex parameter selector == submenuChannel ifFalse:[
+                    ex reject
+                ].
+            ] do:[
                 subm := aRecv aspectFor:submenuChannel
             ].
             subm isNil ifTrue:[
-                Object messageNotUnderstoodSignal handle:[:ex| ] do:[
+                Object messageNotUnderstoodSignal handle:[:ex| 
+                    ex parameter selector == submenuChannel ifFalse:[
+                        ex reject
+                    ].
+            ] do:[
                     subm := aRecv perform:submenuChannel
                 ]
             ].
             subm isNil ifTrue:[
-                Object messageNotUnderstoodSignal handle:[:ex| ] do:[
+                Object messageNotUnderstoodSignal handle:[:ex| 
+                    ex parameter selector == submenuChannel ifFalse:[
+                        ex reject
+                    ].
+                ] do:[
                     subm := aRecv class perform:submenuChannel
                 ]
             ]
         ] ifFalse:[
             (argument := self argument) notNil ifTrue:[
-                Object messageNotUnderstoodSignal handle:[:ex| ] do:[
-                    subm := aRecv perform:submenuChannel asSymbol with:argument
+                sel := submenuChannel asSymbol.
+                Object messageNotUnderstoodSignal handle:[:ex| 
+                    ex parameter selector == sel ifFalse:[
+                        ex reject
+                    ].
+                ] do:[
+                    subm := aRecv perform:sel with:argument
                 ].
 
                 subm isNil ifTrue:[
-                    Object messageNotUnderstoodSignal handle:[:ex| ] do:[
-                        subm := aRecv class perform:submenuChannel asSymbol with:argument
+                    Object messageNotUnderstoodSignal handle:[:ex| 
+                        ex parameter selector == sel ifFalse:[
+                            ex reject
+                        ].
+                    ] do:[
+                        subm := aRecv class perform:sel with:argument
                     ]
                 ]
             ]
@@ -4111,6 +4132,7 @@
     ].
     ^ subm
 
+    "Modified: / 19.5.1998 / 19:44:26 / cg"
 !
 
 indicationValue
@@ -4409,6 +4431,9 @@
 
     windowGrp := menuPanel topMenu windowGroup.
     subMenu   := self setupSubmenu.
+    subMenu isNil ifTrue:[
+        ^ self
+    ].
     subMenu font:(menuPanel topMenu font).
     subMenu becomesActiveMenu.
 
@@ -4433,7 +4458,7 @@
 "/        subMenu selectionIndex:1
 "/    ]
 
-    "Modified: / 27.2.1998 / 17:41:27 / cg"
+    "Modified: / 19.5.1998 / 19:37:37 / cg"
 !
 
 selected:aState
@@ -4524,6 +4549,6 @@
 !MenuPanel class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg2/MenuPanel.st,v 1.82 1998-04-25 22:33:55 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/MenuPanel.st,v 1.83 1998-05-19 17:45:20 cg Exp $'
 ! !
 MenuPanel initialize!