HI Matt, could you please explain this patch a bit? Only the last bit is about selecting the right cell in NSTrackModeMatrix. Are the other change a result of this? It looks like you intent to prevent the setting of the cell state for this mode. Is this correct? In the documentation I only find that this matrix mode wont do any highlighting. The documentation for NSControl states clearly that cells get selected by setting their states. Is this no longer true for NSMatrix? And why is this specific for the track mode?
Cheers, Fred Matt Rice schrieb: > noticed in a matrix of switch buttons in NSTrackModeMatrix mode > selectedRow isn't updated when doing keyboard arrow key stuff > the state changes when deselecting/selecting rows > > there still seems to be some drawing artifacts with this patch, > dotted frame rects being left dotted... > > this doesn't fix the selectedRow thing for NSHighlightModeMatrix > and i'm not sure the correct thing to do with those on the rest... > > if someone knows of any other code using NSTrackModeMatrix, > not sure if this is something which should wait until after the upcoming > release > <matrix-kbd.diff> > > > ------------------------------------------------------------------------ > > Index: NSMatrix.m > =================================================================== > --- NSMatrix.m (revision 24288) > +++ NSMatrix.m (working copy) > @@ -1098,7 +1098,8 @@ > > if ([aCell state] || isHighlighted) > { > - [aCell setState: NSOffState]; > + if (_mode != NSTrackModeMatrix) > + [aCell setState: NSOffState]; > > if (isHighlighted) > { > @@ -1135,7 +1136,9 @@ > { > if (_selectedCells[i][j]) > { > - [_cells[i][j] setState: NSOffState]; > + if (_mode != NSTrackModeMatrix) > + [_cells[i][j] setState: NSOffState]; > + > _selectedCells[i][j] = NO; > } > } > @@ -1172,7 +1175,10 @@ > && [_cells[i][j] isEditable] == NO) > { > _selectedCell = _cells[i][j]; > - [_selectedCell setState: NSOnState]; > + > + if (_mode != NSTrackModeMatrix) > + [_selectedCell setState: NSOnState]; > + > _selectedCells[i][j] = YES; > > _selectedRow = i; > @@ -1211,7 +1217,8 @@ > _selectedColumn = column; > _selectedCells[row][column] = YES; > > - [_selectedCell setState: NSOnState]; > + if (_mode != NSTrackModeMatrix) > + [_selectedCell setState: NSOnState]; > > if (_mode == NSListModeMatrix) > [aCell setHighlighted: YES]; > @@ -3356,7 +3363,8 @@ > BOOL selectCell = NO; > int h, i, lastDottedRow, lastDottedColumn; > > - if (_mode == NSRadioModeMatrix || _mode == NSListModeMatrix) > + if (_mode == NSRadioModeMatrix || _mode == NSListModeMatrix > + || _mode == NSTrackModeMatrix) > selectCell = YES; > > if (_dottedRow == -1 || _dottedColumn == -1) > > > ------------------------------------------------------------------------ > > _______________________________________________ > Gnustep-dev mailing list > Gnustep-dev@gnu.org > http://lists.gnu.org/mailman/listinfo/gnustep-dev _______________________________________________ Gnustep-dev mailing list Gnustep-dev@gnu.org http://lists.gnu.org/mailman/listinfo/gnustep-dev