- Detailed description of the problem:
Something changed in the grid column alignment code between M2 and M1. Now if I have grid column header names that are longer than the set column width the alignment gets messed up (header names will not line up with table columns).

- GXT version: 2.0 M2

- Host mode/web mode/both: occurs in both hosted and web mode

- Browser and version: Hosted Browser and FF 3.0.10

- Operating System: Mac OS 10.5.7

- Sample code
Code:
package test.client;

import java.util.ArrayList;
import java.util.List;

import com.extjs.gxt.ui.client.data.BaseListLoadResult;
import com.extjs.gxt.ui.client.data.BaseListLoader;
import com.extjs.gxt.ui.client.data.BaseModel;
import com.extjs.gxt.ui.client.data.ListLoadResult;
import com.extjs.gxt.ui.client.data.MemoryProxy;
import com.extjs.gxt.ui.client.data.Model;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
import com.extjs.gxt.ui.client.widget.grid.Grid;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.RootPanel;

/**
 * Test showing column alignment bug in GXT 2.0 M2 (works fine in M1)
 */
public class Test implements EntryPoint
{
    private static final int DEFAULT_COL_WIDTH = 100;
    
    ////////////////////////////////////////////////////////////////////////////
    // Long column names seem to be the cause of the alignment bug
    ////////////////////////////////////////////////////////////////////////////
    private static final String COLUMN_NAME_PREFIX = "Look! I'm column #: ";
//    private static final String COLUMN_NAME_PREFIX = "Col:";
    
    /**
     * {@inheritDoc}
     */
    public void onModuleLoad()
    {
        RootPanel.get().add(new MyContainer());
    }
    
    private class MyContainer extends LayoutContainer
    {
        /**
         * {@inheritDoc}
         */
        @Override
        protected void onRender(Element parent, int index)
        {
            super.onRender(parent, index);
            
            List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
            columns.add(new ColumnConfig(
                    "col1",
                    COLUMN_NAME_PREFIX + 1,
                    DEFAULT_COL_WIDTH));
            columns.add(new ColumnConfig(
                    "col2",
                    COLUMN_NAME_PREFIX + 2,
                    DEFAULT_COL_WIDTH));
            columns.add(new ColumnConfig(
                    "col3",
                    COLUMN_NAME_PREFIX + 1,
                    DEFAULT_COL_WIDTH));
            
            List<BaseModel> rows = new ArrayList<BaseModel>();
            
            for(int i = 0; i < 3; i++)
            {
                final BaseModel baseModel = new BaseModel();
                baseModel.set("col1", "value: " + i + ".0");
                baseModel.set("col2", "value: " + i + ".1");
                baseModel.set("col3", "value: " + i + ".2");
                rows.add(baseModel);
            }
            
            BaseListLoadResult<BaseModel> loadResult =
                new BaseListLoadResult<BaseModel>(rows);
            
            final BaseListLoader<ListLoadResult<Model>> loader =
                new BaseListLoader<ListLoadResult<Model>>(
                        new MemoryProxy<BaseListLoadResult<BaseModel>>(loadResult));
            
            final Grid<Model> grid = new Grid<Model>(
                    new ListStore<Model>(loader),
                    new ColumnModel(columns));
            
            grid.setLoadMask(true);
            grid.setBorders(true);
            grid.setHeight(300);
            grid.setWidth(600);
            
            loader.load();
            
            this.add(grid);
        }
    }
}