diff -r b63155a28428 -r a537a996fb22 DSVColumnView.st --- a/DSVColumnView.st Sat Oct 18 17:33:13 2014 +0200 +++ b/DSVColumnView.st Thu Oct 23 10:45:18 2014 +0200 @@ -2406,27 +2406,39 @@ buttonPress:button x:x y:y "a button was pressed - handle selection here" - |rowNr colNr sensor clickPoint clickedIntoSelection menu column columnEditorType| + |rowNr colNr sensor clickPoint clickedIntoSelection column columnEditorType| buttonMotionAction := buttonReleaseAction := nil. self isEnabled ifFalse:[^ self]. - (button == 2) ifTrue:[ + rowNr := self yVisibleToRowNr:y. + colNr := self xVisibleToColNr:x. + + (button == 2) ifTrue:[ |openMenu| + openMenu := false. + UserPreferences current selectOnRightClick ifFalse:[ + openMenu := true. + ] ifTrue:[ + UserPreferences current showRightButtonMenuOnRelease ifFalse:[ + (rowNr notNil and:[colNr notNil and:[self isRowSelectable:rowNr]]) ifTrue:[ + self selectRowAt:rowNr colAt:colNr atPoint:clickPoint openEditor:false + ]. + openMenu := true. + ]. + ]. + openMenu ifTrue:[ |menu| menu := self findMenuForSelection. menu notNil ifTrue:[ self startUpMenu:menu. - ^ self + ] ifFalse:[ + super buttonPress:button x:x y:y. ]. - super buttonPress:button x:x y:y. ^ self - ] - ]. - - rowNr := self yVisibleToRowNr:y. - colNr := self xVisibleToColNr:x. - + ]. + ]. + (rowNr isNil or:[colNr isNil]) ifTrue:[ self deselect. super buttonPress:button x:x y:y. @@ -4814,10 +4826,10 @@ !DSVColumnView class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libwidg2/DSVColumnView.st,v 1.300 2014-07-10 23:33:39 cg Exp $' + ^ '$Header: /cvs/stx/stx/libwidg2/DSVColumnView.st,v 1.301 2014-10-23 08:45:18 ca Exp $' ! version_CVS - ^ '$Header: /cvs/stx/stx/libwidg2/DSVColumnView.st,v 1.300 2014-07-10 23:33:39 cg Exp $' + ^ '$Header: /cvs/stx/stx/libwidg2/DSVColumnView.st,v 1.301 2014-10-23 08:45:18 ca Exp $' ! !