Re: [Pharo-project] startDrag: error
ouch...this kind of method is why i chose to start from scratchâ¦. what is the err you get? Fernando On Sun, Feb 5, 2012 at 6:13 PM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
Hi guys
In 1.4 I get from time to time a problem with
PluggableListMorph>>startDrag: evt     |row ddm draggedItem draggedItemMorph |
    dragItemSelector ifNotNil: [ ^self startDragExtended: evt ].     evt hand hasSubmorphs ifTrue: [^ self].     (self dragEnabled and: [model okToChange]) ifFalse: [^ self].
    (row := self mouseDownRow)         ifNil: [ draggedItem := self getListItem: lastNonZeroIndex. "self selection" ]
                                        where lastNonZeroIndex is nil
        ifNotNil: [ draggedItem := self getListItem: row ].
    "Here I ensureat least one element is selected "     draggedItem ifNil: [ ^ self ].
    self isMultipleSelection         ifTrue: [ | passengers |             passengers := self model dragPassengersFor: draggedItem inMorph: self.             passengers ifNil: [ ^ self ].             draggedItemMorph := StringMorph contents: (passengers joinUsing: ' ') asStringOrText.             ddm := TransferMorph withPassenger: passengers from: self ]         ifFalse: [ | passenger |             passenger := self model dragPassengerFor: draggedItem inMorph: self.             passenger ifNil: [ ^ self ].             draggedItemMorph := StringMorph contents: passenger asStringOrText.             ddm := TransferMorph withPassenger: passenger from: self ].
    self mouseDownRow: nil.
    ddm dragTransferType: (self model dragTransferTypeForMorph: self).
    [evt hand grabMorph: ddm ] ensure: [                                         Cursor normal show.                                         evt hand releaseMouseFocus: self]
listSelectionAt: index
    index isZero ifFalse:[ lastNonZeroIndex := index ].     getSelectionListSelector ifNil:[^false].     ^model perform: getSelectionListSelector with: index
So it looks like there are path where lastNonZeroIndex can be nil.
participants (1)
-
Fernando Olivero