Chris Muller uploaded a new version of Morphic to project The Trunk: http://source.squeak.org/trunk/Morphic-cmm.1123.mcz
==================== Summary ====================
Name: Morphic-cmm.1123 Author: cmm Time: 27 April 2016, 1:22:50.860329 pm UUID: cecf8344-3af9-4811-a7da-39bb25d305d1 Ancestors: Morphic-cmm.1116, Morphic-bf.1122
Merge cmm.1116.
=============== Diff against Morphic-bf.1122 ===============
Item was changed: ----- Method: AlternatePluggableListMorphOfMany>>mouseMove: (in category 'event handling') ----- mouseMove: event "The mouse has moved, as characterized by the event provided. Adjust the scrollbar, and alter the selection as appropriate"
| oldIndex oldVal row | event position y < self top ifTrue: [scrollBar scrollUp: 1. row := self rowAtLocation: scroller topLeft + (1 @ 1)] ifFalse: [row := event position y > self bottom ifTrue: [scrollBar scrollDown: 1. self rowAtLocation: scroller bottomLeft + (1 @ -1)] ifFalse: [ self rowAtLocation: event position]]. row = 0 ifTrue: [^super mouseDown: event].
model okToChange ifFalse: [^self]. "No change if model is locked"
"Set meaning for subsequent dragging of selection" oldIndex := self getCurrentSelectionIndex. oldIndex ~= 0 ifTrue: [oldVal := self listSelectionAt: oldIndex]. "Need to restore the old one, due to how model works, and set new one." oldIndex ~= 0 ifTrue: [self listSelectionAt: oldIndex put: oldVal].
"Inform model of selected item and let it toggle." self changeModelSelection: (self modelIndexFor: row) shifted: true + controlled: true. - controlled: event controlKeyPressed. submorphs do: [:each | each changed]!
Item was changed: ----- Method: PluggableListMorph>>charactersOccluded (in category 'geometry') ----- charactersOccluded "Answer the number of characters occluded in my #visibleList by my right edge." | listIndex | listIndex:=0. ^ self visibleList inject: 0 into: [ : sum : each | | eachString totalWidth indexOfLastVisible iconWidth | totalWidth:=0. eachString := each asString "withBlanksTrimmed". iconWidth := (self iconAt: (listIndex := listIndex+1)) ifNil:[0] ifNotNil: [ : icon | icon width+2 ]. indexOfLastVisible := ((1 to: eachString size) detect: [ : stringIndex | (totalWidth:=totalWidth+(self font widthOf: (eachString at: stringIndex))) > (self width - (scrollBar ifNil: [ 0 ] ifNotNil: [ scrollBar width ]) - iconWidth) ] ifNone: [ eachString size + 1 ]) - 1. + sum + ((eachString size - indexOfLastVisible) min: 10) ]! - sum + (eachString size - indexOfLastVisible) ]!
squeak-dev@lists.squeakfoundation.org