Update native wxGrid header on DPI change

Simply resize all columns to their effective widths when using native
wxHeaderCtrl for the grid.
This commit is contained in:
Vadim Zeitlin
2020-04-01 01:08:41 +02:00
parent 5525e0ed3f
commit f2923d49e1

View File

@@ -5376,7 +5376,11 @@ void wxGrid::OnDPIChanged(wxDPIChangedEvent& event)
}
}
// Similarly for columns.
// Similarly for columns, except that here we need to update the native
// control even if none of the widths had been changed, as it's not going
// to do it on its own when redisplayed.
wxHeaderCtrl* const
colHeader = m_useNativeHeader ? GetGridColHeader() : NULL;
if ( !m_colWidths.empty() )
{
int total = 0;
@@ -5392,6 +5396,16 @@ void wxGrid::OnDPIChanged(wxDPIChangedEvent& event)
m_colWidths[i] = width;
m_colRights[i] = total;
if ( colHeader )
colHeader->UpdateColumn(i);
}
}
else if ( colHeader )
{
for ( int i = 0; i < m_numCols; ++i )
{
colHeader->UpdateColumn(i);
}
}