diff -r 3b6de876f7a2 -r 7ff2e20b37d4 SelectionInListModelView.st --- a/SelectionInListModelView.st Tue Mar 13 16:16:28 2007 +0100 +++ b/SelectionInListModelView.st Tue Mar 13 16:16:38 2007 +0100 @@ -19,7 +19,7 @@ hilightBgColorNoFocus hilightLevel hilightFrameColor hilightStyle dropSource editorView openEditorAction closeEditorAction highlightEnterItem enterItem cursorItem lineMask keyActionStyle - returnKeyActionStyle strikeOut' + returnKeyActionStyle strikeOut modelChangedDuringButtonPress' classVariableNames:'DefaultHilightStyle DefaultHilightBackgroundColor DefaultHilightForegroundColor DefaultHilightLevel DefaultHilightFrameColor' @@ -1207,7 +1207,7 @@ " |sensor item menu appl isSelected lineNr startLine dragDistance| - buttonMotionAction := buttonReleaseAction := nil. + modelChangedDuringButtonPress := buttonMotionAction := buttonReleaseAction := nil. self pointerEntersItem:nil. self cursorEntersItem:nil. @@ -1260,6 +1260,7 @@ ^ self ]. lineNr isNil ifTrue:[ ^ self ]. + modelChangedDuringButtonPress := false. sensor ctrlDown ifTrue:[ self buttonControlPressAtLine:lineNr x:x y:y. @@ -1368,7 +1369,10 @@ buttonRelease:button x:x y:y "a button was released " - buttonMotionAction := nil. + |makeSelectionVisible| + + makeSelectionVisible := modelChangedDuringButtonPress. + buttonMotionAction := modelChangedDuringButtonPress := nil. buttonReleaseAction notNil ifTrue:[ buttonReleaseAction value. @@ -1377,6 +1381,10 @@ self cursorEntersItem:nil. self stopAutoScroll. + + (makeSelectionVisible == true and:[self hasSelection]) ifTrue:[ + self makeSelectionVisible + ]. ! characterPress:aKey x:x y:y @@ -2112,6 +2120,8 @@ shown ifFalse:[^ self]. + modelChangedDuringButtonPress notNil ifTrue:[^ self]. + firstLine := self firstInSelection. (firstLine isNil or:[firstLine == 0]) ifTrue:[^ self]. @@ -2371,9 +2381,15 @@ ] ]. selection = oldSelect ifTrue:[^ false]. + + modelChangedDuringButtonPress notNil ifTrue:[ + modelChangedDuringButtonPress := true. + ]. + self closeEditor. self cursorEntersItem:nil. + (doRedraw and:[shown]) ifFalse:[ ^ true ]. @@ -2396,5 +2412,5 @@ !SelectionInListModelView class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libwidg2/SelectionInListModelView.st,v 1.119 2007-03-12 15:25:20 ca Exp $' + ^ '$Header: /cvs/stx/stx/libwidg2/SelectionInListModelView.st,v 1.120 2007-03-13 15:16:38 ca Exp $' ! !