We could call SetSashPositionAndNotify() twice in a row which was probably
unexpected and possibly wasteful, if the user code did anything non trivial in
response to this event.
Just call it once after we're certain which sash position do we want to set.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69601
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// Don't do anything if the size didn't really change.
if ( size != old_size )
{
// Don't do anything if the size didn't really change.
if ( size != old_size )
{
+ int newPosition = -1;
+
// Apply gravity if we use it.
int delta = (int) ( (size - old_size)*m_sashGravity );
if ( delta != 0 )
{
// Apply gravity if we use it.
int delta = (int) ( (size - old_size)*m_sashGravity );
if ( delta != 0 )
{
- int newPosition = m_sashPosition + delta;
+ newPosition = m_sashPosition + delta;
if( newPosition < m_minimumPaneSize )
newPosition = m_minimumPaneSize;
if( newPosition < m_minimumPaneSize )
newPosition = m_minimumPaneSize;
- SetSashPositionAndNotify(newPosition);
}
// Also check if the second window became too small.
}
// Also check if the second window became too small.
- int adjustedPosition = AdjustSashPosition(m_sashPosition);
- if ( adjustedPosition != m_sashPosition )
- SetSashPositionAndNotify(adjustedPosition);
+ newPosition = AdjustSashPosition(newPosition == -1
+ ? m_sashPosition
+ : newPosition);
+ if ( newPosition != m_sashPosition )
+ SetSashPositionAndNotify(newPosition);