Fix default attribute wxGridCellAttr::GetNonDefaultAlignment()
This function is not supposed to overwrite the given alignment values unless the alignment is specifically set for the given cell, but it always overwrote them when called on m_defaultCellAttr, i.e. the attribute used by the cells that don't have any special attribute. This meant that custom attributes had to be set (or, more efficiently, a custom attribute provider returning non-null attributes for all cells had to be used) previously just to make the right alignment used by default by number or date renderers work. Fix this by ignoring the values set in the default attribute in this function. Also add a unit test (which required adding a special helper class just to allow testing wxGrid::GetCellAttr() used by the renderers) that used to fail but passes now.
This commit is contained in:
@@ -579,6 +579,11 @@ void wxGridCellAttr::GetAlignment(int *hAlign, int *vAlign) const
|
||||
|
||||
void wxGridCellAttr::GetNonDefaultAlignment(int *hAlign, int *vAlign) const
|
||||
{
|
||||
// Default attribute can only have default alignment, so don't return it
|
||||
// from this function.
|
||||
if ( this == m_defGridAttr )
|
||||
return;
|
||||
|
||||
if ( hAlign && m_hAlign != wxALIGN_INVALID )
|
||||
*hAlign = m_hAlign;
|
||||
|
||||
|
Reference in New Issue
Block a user