[Pharo-project] startDrag: error
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)
-
Stéphane Ducasse