Am 28.03.2013 um 11:51 schrieb stephane ducasse <stephane.ducasse@free.fr>:It happens in MethodWidget>>#methodSelectionAt:put. When PluggableIconListMorph updates the list selection it calls the MethodWidget to set true on the new method selected. But MethodWidget uses a Dictionary for instVar methodSelection and finds the old method being equal and enables this.
On Mar 28, 2013, at 11:21 AM, Norbert Hartl <norbert@hartl.name> wrote:What is the rationale for having the method pane as multi-select list? I don't think it is of greater use when editing code. I could imagine that some refactoring tasks could be easier having multi-select lists.
Anyway, if I try to rename a method without using the refactoring engine I just change the selector, save and delete the method with the old selector. In pharo 2.0 when you rename a method and then click on the old selector both methods are selected and shortcut invocation for deleting deletes both. Which is quite annoying. In my opinion there is no reason for two methods being selected. If you agree I'll happily enter a bug.
The problem is not a nautilus bug but a compiled method one if I remember correctly.
because two methods with the same body are equal.
As I don't see a reason why a selection should be done by equality this behavior can be fixed by using an IdentityDictionary.
Fix:
MethodWidget>>#initialize
super initialize.
methodsSelection := IdentityDictionary new.
Any arguments?
Norbert