2000-09-11 Mirko Viviani <mirko.viviani@rccr.cremona.it>

* Source/NSBrowser.m ([NSBrowser -_performLoadOfColumn:]): set
	intercell spacing to 0.
	* Source/NSMatrix.m ([NSMatrix -mouseDown:]): in NSRadioModeMatrix
	deselect the previous selected cell only if the cell is valid.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@7471 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
mirko 2000-09-11 15:09:27 +00:00
parent 69f05100bd
commit 47061712e4
3 changed files with 21 additions and 11 deletions

View file

@ -1,3 +1,10 @@
2000-09-11 Mirko Viviani <mirko.viviani@rccr.cremona.it>
* Source/NSBrowser.m ([NSBrowser -_performLoadOfColumn:]): set
intercell spacing to 0.
* Source/NSMatrix.m ([NSMatrix -mouseDown:]): in NSRadioModeMatrix
deselect the previous selected cell only if the cell is valid.
2000-09-10 Mirko Viviani <mirko.viviani@rccr.cremona.it>
* Tools/gpbs.m ([PasteboardEntry -lostOwnership]): workaround to avoid

View file

@ -2815,6 +2815,7 @@ static float scrollerWidth; // == [NSScroller scrollerWidth]
{
id bc, sc, matrix = nil;
NSRect matrixRect = {{0, 0}, {100, 100}};
NSSize matrixIntercellSpace = {{0, 0}};
#if defined NSBTRACE__performLoadOfColumn || defined NSBTRACE_all
fprintf(stderr, "NSBrowser - (void)_performLoadOfColumn: %d\n", column);
@ -2846,6 +2847,7 @@ static float scrollerWidth; // == [NSScroller scrollerWidth]
prototype: _browserCellPrototype
numberOfRows: n
numberOfColumns: 1];
[matrix setIntercellSpacing:matrixIntercellSpace];
[matrix setAllowsEmptySelection: _allowsEmptySelection];
if (!_allowsMultipleSelection)
[matrix setMode: NSRadioModeMatrix];
@ -2877,6 +2879,7 @@ static float scrollerWidth; // == [NSScroller scrollerWidth]
prototype: _browserCellPrototype
numberOfRows: 0
numberOfColumns: 0];
[matrix setIntercellSpacing:matrixIntercellSpace];
[matrix setAllowsEmptySelection: _allowsEmptySelection];
if (_allowsMultipleSelection)
[matrix setMode: NSListModeMatrix];

View file

@ -1917,6 +1917,16 @@ static SEL getSel = @selector(objectAtIndex:);
column: &column
forPoint: lastLocation])
{
if ((_mode == NSRadioModeMatrix) && _selectedCell != nil)
{
[_selectedCell setState: NSOffState];
[self drawCellAtRow: _selectedRow column: _selectedColumn];
[_window flushWindow];
_selectedCells[_selectedRow][_selectedColumn] = NO;
_selectedCell = nil;
_selectedRow = _selectedColumn = -1;
}
if ([_cells[row][column] isSelectable])
{
NSText* t = [_window fieldEditor: YES forObject: self];
@ -1969,16 +1979,6 @@ static SEL getSel = @selector(objectAtIndex:);
withPeriod: 0.05];
ASSIGN(lastEvent, theEvent);
if ((_mode == NSRadioModeMatrix) && _selectedCell != nil)
{
[_selectedCell setState: NSOffState];
[self drawCellAtRow: _selectedRow column: _selectedColumn];
[_window flushWindow];
_selectedCells[_selectedRow][_selectedColumn] = NO;
_selectedCell = nil;
_selectedRow = _selectedColumn = -1;
}
// selection involves two steps, first
// a loop that continues until the left mouse goes up; then a series of
// steps which send actions and display the cell as it should appear after
@ -2036,7 +2036,7 @@ static SEL getSel = @selector(objectAtIndex:);
case NSRadioModeMatrix:
// Radio mode allows no more than one cell to be selected
if (previousCell == aCell)
if (previousCell == aCell || aCell == nil)
break;
// deselect previously selected cell