[squeak-dev] The Trunk: Morphic-mt.985.mcz

commits at source.squeak.org commits at source.squeak.org
Wed May 27 12:14:28 UTC 2015


Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.985.mcz

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

Name: Morphic-mt.985
Author: mt
Time: 27 May 2015, 2:13:49.6 pm
UUID: c315a5f2-a6af-d34c-809a-c14702a96423
Ancestors: Morphic-mt.984

Fixes a bug with the selection highlight in ObjectExplorer (and all other tools that use a tree widget).

See: http://forum.world.st/BUG-ObjectExplorer-menu-td4827121.html

=============== Diff against Morphic-mt.984 ===============

Item was changed:
  ----- Method: SimpleHierarchicalListMorph>>mouseDown: (in category 'event handling') -----
  mouseDown: evt
  	| aMorph selectors |
  	aMorph := self itemFromPoint: evt position.
  	evt yellowButtonPressed  "First check for option (menu) click"
  		ifTrue: [
  			(PluggableListMorph menuRequestUpdatesSelection and: [model okToChange]) ifTrue: [
  				aMorph == selectedMorph 
  					ifFalse: [self setSelectedMorph: aMorph]].
  			^ self yellowButtonActivity: evt shiftPressed].
  	(aMorph notNil and:[aMorph inToggleArea: (aMorph point: evt position from: self)])
  		ifTrue:[^self toggleExpandedState: aMorph event: evt]. 
  	aMorph ifNil:[^super mouseDown: evt].
+ 	
  	aMorph highlightForMouseDown.
+ 	self setProperty: #highlightedMorph toValue: aMorph.
+ 	
  	selectors := Array 
  		with: #click:
  		with: nil
  		with: nil
  		with: (self dragEnabled ifTrue:[#startDrag:] ifFalse:[nil]).
  	evt hand waitForClicksOrDrag: self event: evt selectors: selectors threshold: HandMorph dragThreshold "pixels".!

Item was changed:
  ----- Method: SimpleHierarchicalListMorph>>mouseUp: (in category 'event handling') -----
+ mouseUp: event
+  
+ 	| clickedMorph highlightedMorph |
+ 	clickedMorph := self itemFromPoint: event position.
+ 	highlightedMorph := self valueOfProperty: #highlightedMorph ifAbsent: [].
+ 	self removeProperty: #highlightedMorph.
+ 
+ 	((model okToChange not
+ 		or: [clickedMorph isNil])
+ 		or: [clickedMorph ~~ highlightedMorph]) ifTrue: [
+ 			highlightedMorph ifNotNil: [:m | m highlightForMouseDown: false].
+ 			^ self].
+ 	
+ 	((autoDeselect isNil or: [autoDeselect]) and: [clickedMorph == selectedMorph]) 
- mouseUp: event 
- 	| aMorph |
- 	aMorph := self itemFromPoint: event position.
- 	aMorph ifNil: [^self].
- 	aMorph highlightedForMouseDown ifFalse: [^self].
- 	aMorph highlightForMouseDown: false.
- 	model okToChange ifFalse: [^self].
- 	"No change if model is locked"
- 	((autoDeselect isNil or: [autoDeselect]) and: [aMorph == selectedMorph]) 
  		ifTrue: [self setSelectedMorph: nil]
+ 		ifFalse: [self setSelectedMorph: clickedMorph].
+ 
+ 	highlightedMorph highlightForMouseDown: false.	
- 		ifFalse: [self setSelectedMorph: aMorph].
  	event hand newKeyboardFocus: self.
+ 	Cursor normal show.!
- 	Cursor normal show!



More information about the Squeak-dev mailing list