ListGrid issues when wrapping and freezing columns

SmartGWT version: 2.4
Browser: IE 8
OS: Windows XP

When a ListGrid is created and has cell-wrapping and column-freezing enabled, if one cell in a row has a lot of data (takes advantage of the wrapping) and at least one, but not all, columns are frozen, the two sides of the ListGrid “freeze-line” will have different row heights.

I realize that this is a known limitation but it should not be that difficult to rectify (contrary to what Isomorphic states).
The row-selection highlighting still works, thus the two sides of the “freeze-line” can be tied together correctly so it shouldn’t be too difficult to ensure that the height of each row is correct.

As this may be somewhat heavier on the client-side, this could be made an option on the grid: ListGrid.setSyncFrozenRowHeights( boolean syncFrozenRowHeights )

To Reproduce:

// Create the ListGrid.
final ListGrid grid = new ListGrid();
grid.setWidth100();
grid.setHeight100();
grid.setCanFreezeFields( true );
grid.setWrapCells( true );
grid.setFixedRecordHeights( false );
// Create the Fields.
final ListGridField[] fields = new ListGridField[2];
// Create the 1st field.
final ListGridField field1 = new ListGridField();
field1.setWidth( "*" );
field1.setName( "fillerField" );
field1.setTitle( "filler" );
// Create the 2nd field.
final ListGridField field2 = new ListGridField();
field2.setWidth( 100 );
field2.setName( "wrapperField" );
field2.setTitle( "wrapperMan" );
field2.setFrozen( true );
fields[0] = field1;
fields[1] = field2;
grid.setFields( fields );
// Create the Data.
final ListGridRecord[] records = new ListGridRecord[2];
// Create the 1st row of data.
final ListGridRecord record1 = new ListGridRecord();
record1.setAttribute( "fillerField", "A little text" );
record1.setAttribute( "wrapperField", "A lotta text, and then some...<br />and even more" );
// Create the 2nd row of data.
final ListGridRecord record2 = new ListGridRecord();
record2.setAttribute( "fillerField", "Some text here too" );
record2.setAttribute( "wrapperField", "Not too much here" );
// Add the data records.
records[0] = record1;
records[1] = record2;
// Set the data.
grid.setData( records );
// Create the Window.
final Window win = new Window();
win.setWidth( 500 );
win.setHeight( 500 );
win.setTitle( "ListGrid Issue Test" );
// Add the grid to the Window.
win.addItem( grid );
// Show the Window.
win.show();

If you think it’s straightforward, feel free to submit a patch - remember not to degrade performance or break any other feature or subclass. Otherwise, consider Feature Sponsorship.