Could you provide a way to reproduce it ?

Because debugging from within Mail is quite tedious :P

Ben

On 11 Dec 2013, at 10:20, Stéphane Ducasse <[email protected]> wrote:

> Hi 
> 
> I got a bug with menu (I'm trying to reproduce it but this is a real bug) 
> 
> because in 
> 
> interpretRegistration: aRegistration 
>       item enabled
>                       ifNil: [ node enabled: boolean not ]
>                       ifNotNil: [:boolean | node enabled: boolean ].  
> 
> 
> I will not comment on the fact that enabled should return a boolean 
> but the problem is that node does not understand enabled: 
> 
> 
> item enabled
>       ifNil: [ node enabledBlock: item  enabledBlock ]
>       node is a MenuRegistration and items is 
> PragmaMenuAndShortcutRegistrationItem
>       ifNotNil: [:boolean | node enabled: boolean ].  
> 
> And not of course does not understand enabledBlock:
> 
> 
> 
> interpretRegistration: aRegistration 
>       | root |
>       root := MenuRegistration owner: self.
>       aRegistration items do: [:item || node |
>                       node := item group
>                                       ifNil: [ root item: item item ]
>                                       ifNotNil: [:grp | root group: grp ].
>                       item with
>                               ifNotNil: [:block || old |
>                                       old := aRegistration currentRoot.
>                                       aRegistration currentRoot: node name.
>                                       [ node with: block ] ensure: [ 
> aRegistration currentRoot: old ]]
>                               ifNil: [
>                                       item action
>                                               ifNil: [ 
>                                                       node 
>                                                               target: item 
> target;
>                                                               arguments: item 
> arguments;
>                                                               selector: item 
> selector ]
>                                               ifNotNil:[ 
>                                                       node 
>                                                               action: item 
> action ]].
>                       node
>                               keyText: item keyText;
>                               help: item help;
>                               icon: item icon;
>                               order: item order;
>                               parent: item parent.
>                       item enabled
>                               ifNil: [ node ]
>                               ifNotNil: [:boolean | node enabled: boolean ].  
>                       item label
>                               ifNotNil: [ node label: item label ].
>                       item default ifNotNil: [ :d |
>                               node label: node label, ' (', d asString, ')'].
>                       item isWithSeparatorAfter
>                               ifTrue: [ node withSeparatorAfter ]]

Reply via email to