[squeak-dev] The Trunk: Morphic-bf.618.mcz
commits at source.squeak.org
commits at source.squeak.org
Fri Apr 13 23:36:06 UTC 2012
Bert Freudenberg uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-bf.618.mcz
==================== Summary ====================
Name: Morphic-bf.618
Author: bf
Time: 13 April 2012, 4:34:16.297 pm
UUID: 0ab6bc05-3abd-458f-8af2-fc9d6c42d769
Ancestors: Morphic-eem.617
Fix keyboard filtering in PluggableListMorphOfMany (e.g., the TestRunner's class list)
=============== Diff against Morphic-eem.617 ===============
Item was changed:
----- Method: PluggableListMorph>>update: (in category 'updating') -----
update: aSymbol
"Refer to the comment in View|update:."
aSymbol == getListSelector ifTrue:
[ self updateList.
^ self ].
aSymbol == getIndexSelector ifTrue:
[ | uiIndex modelIndex |
uiIndex := self uiIndexFor: (modelIndex := self getCurrentSelectionIndex).
self selectionIndex:
(uiIndex = 0
ifTrue:
[ "The filter is preventing us from selecting the item we want - remove it."
+ (modelIndex > 0 and: [list notNil and: [list size > 0]]) ifTrue: [ self removeFilter ].
- (list notNil and: [list size > 0]) ifTrue: [ self removeFilter ].
modelIndex ]
ifFalse: [ uiIndex ]).
^ self ]!
Item was changed:
----- Method: PluggableListMorphOfMany>>itemSelectedAmongMultiple: (in category 'model access') -----
itemSelectedAmongMultiple: index
+ ^self listSelectionAt: (self modelIndexFor: index)!
- ^self listSelectionAt: index!
Item was changed:
----- Method: PluggableListMorphOfMany>>mouseDown: (in category 'event handling') -----
mouseDown: event
+ | oldIndex oldVal row index |
- | oldIndex oldVal row |
event yellowButtonPressed ifTrue: [^ self yellowButtonActivity: event shiftPressed].
row := self rowAtLocation: event position.
row = 0 ifTrue: [^super mouseDown: event].
+ index := self modelIndexFor: row.
model okToChange ifFalse: [^ self]. "No change if model is locked"
"Set meaning for subsequent dragging of selection"
+ dragOnOrOff := (self listSelectionAt: index) not.
- dragOnOrOff := (self listSelectionAt: row) not.
oldIndex := self getCurrentSelectionIndex.
oldIndex ~= 0 ifTrue: [oldVal := self listSelectionAt: oldIndex].
"Set or clear new primary selection (listIndex)"
dragOnOrOff
+ ifTrue: [self changeModelSelection: index]
- ifTrue: [self changeModelSelection: (self modelIndexFor: row)]
ifFalse: [self changeModelSelection: 0].
"Need to restore the old one, due to how model works, and set new one."
oldIndex ~= 0 ifTrue: [self listSelectionAt: oldIndex put: oldVal].
+ self listSelectionAt: index put: dragOnOrOff.
- self listSelectionAt: row put: dragOnOrOff.
"event hand releaseMouseFocus: aMorph."
+ !
- "aMorph changed"!
Item was changed:
----- Method: PluggableListMorphOfMany>>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 index |
- | 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].
+ index := self modelIndexFor: row.
model okToChange ifFalse: [^self]. "No change if model is locked"
dragOnOrOff ifNil:
["Was not set at mouse down, which means the mouse must have gone down in an area where there was no list item"
+ dragOnOrOff := (self listSelectionAt: index) not].
- dragOnOrOff := (self listSelectionAt: row) not].
"Set meaning for subsequent dragging of selection"
oldIndex := self getCurrentSelectionIndex.
oldIndex ~= 0 ifTrue: [oldVal := self listSelectionAt: oldIndex].
"Set or clear new primary selection (listIndex)"
dragOnOrOff
+ ifTrue: [self changeModelSelection: index]
- ifTrue: [self changeModelSelection: (self modelIndexFor: row)]
ifFalse: [self changeModelSelection: 0].
"Need to restore the old one, due to how model works, and set new one."
oldIndex ~= 0 ifTrue: [self listSelectionAt: oldIndex put: oldVal].
+ self listSelectionAt: index put: dragOnOrOff.
+ !
- self listSelectionAt: row put: dragOnOrOff.
- row changed!
More information about the Squeak-dev
mailing list
|