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!