[squeak-dev] The Inbox: Morphic-ct.1789.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Oct 26 18:08:39 UTC 2021


A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-ct.1789.mcz

==================== Summary ====================

Name: Morphic-ct.1789
Author: ct
Time: 26 October 2021, 8:08:31.851896 pm
UUID: 48a9e28b-da86-1b44-bc84-d9e4447f374e
Ancestors: Morphic-ct.1788

Fixes yellow-button menu invocation for hierarchical lists that are not inside a system window. This fixes the following issues:

- Perform a yellow-button click on hierarchical list inside a dialog window (that it, outside a system window). Previously, the window menu was shown rather than the list menu.
- From an object explorer, drag/copy the PluggableTreeMorph into the world via halo. If you yellow-clicked any item in the detached tree morph, the item was not selected correctly before.

=============== Diff against Morphic-ct.1788 ===============

Item was changed:
  ----- Method: SimpleHierarchicalListMorph>>addMorphsTo:from:allowSorting:withExpandedItems:atLevel: (in category 'private') -----
  addMorphsTo: morphList from: aCollection allowSorting: sortBoolean withExpandedItems: expandedItems atLevel: newIndent
  
  	| priorMorph newCollection firstAddition |
  	priorMorph := nil.
  	newCollection := (sortBoolean and: [sortingSelector notNil]) ifTrue: [
  		aCollection sorted: [ :a :b | 
  			(a perform: sortingSelector) <= (b perform: sortingSelector)]
  	] ifFalse: [
  		aCollection
  	].
  	firstAddition := nil.
  	newCollection do: [:item | 
  		priorMorph := self indentingItemClass basicNew 
  			initWithContents: item 
  			prior: priorMorph 
  			forList: self
  			indentLevel: newIndent.
  		priorMorph
  			initWithColor: self textColor
  			andFont: self font.
  		priorMorph
  			selectionColor: self selectionColor;
  			selectionTextColor: self selectionTextColor;
  			hoverColor: self hoverColor;
  			highlightTextColor: self highlightTextColor;
  			filterColor: self filterColor;
+ 			filterTextColor: self filterTextColor;
+ 			wantsYellowButtonMenu: false.
- 			filterTextColor: self filterTextColor.
  		firstAddition ifNil: [firstAddition := priorMorph].
  		morphList add: priorMorph.
  		((item hasEquivalentIn: expandedItems) or: [priorMorph isExpanded]) ifTrue: [
  			self flag: #bug. "mt: Endless recursion can happen for similar items in the tree."
  			priorMorph isExpanded: true.
  			priorMorph 
  				addChildrenForList: self 
  				addingTo: morphList
  				withExpandedItems: expandedItems.
  		].
  	].
  	^firstAddition
  	
  !

Item was changed:
  ----- Method: SimpleHierarchicalListMorph>>addSubmorphsAfter:fromCollection:allowSorting: (in category 'private') -----
  addSubmorphsAfter: parentMorph fromCollection: aCollection allowSorting: sortBoolean
  
  	| priorMorph morphList newCollection |
  	priorMorph := nil.
  	newCollection := (sortBoolean and: [sortingSelector notNil]) ifTrue: [
  		aCollection sorted: [ :a :b | 
  			(a perform: sortingSelector) <= (b perform: sortingSelector)]
  	] ifFalse: [
  		aCollection
  	].
  	morphList := OrderedCollection new.
  	newCollection do: [:item | 
  		priorMorph := self indentingItemClass basicNew 
  			initWithContents: item 
  			prior: priorMorph 
  			forList: self
  			indentLevel: parentMorph indentLevel + 1.
  		priorMorph
  			color: self textColor;
  			font: self font;
  			selectionColor: self selectionColor;
  			selectionTextColor: self selectionTextColor;
  			hoverColor: self hoverColor;
  			highlightTextColor: self highlightTextColor;
  			filterColor: self filterColor;
+ 			filterTextColor: self filterTextColor;
+ 			wantsYellowButtonMenu: false.
- 			filterTextColor: self filterTextColor.
  		morphList add: priorMorph.
  	].
  	scroller addAllMorphs: morphList after: parentMorph.
  	^morphList
  	
  !

Item was changed:
  ----- Method: SimpleHierarchicalListMorph>>initialize (in category 'initialization') -----
  initialize
  	"initialize the state of the receiver"
  	super initialize.
  	self setProperty: #autoExpand toValue: false.
+ 	scroller wantsYellowButtonMenu: false.
  	self
  		on: #mouseMove
  		send: #mouseStillDown:onItem:
  		to: self!



More information about the Squeak-dev mailing list