diff --git a/src/controls/QskSkinStateChanger.h b/src/controls/QskSkinStateChanger.h index 68c4bb9e..f13d3145 100644 --- a/src/controls/QskSkinStateChanger.h +++ b/src/controls/QskSkinStateChanger.h @@ -16,6 +16,7 @@ class QskSkinStateChanger ~QskSkinStateChanger(); void setStates( QskAspect::States ); + void resetStates(); private: QskSkinnable* m_skinnable; @@ -30,8 +31,7 @@ inline QskSkinStateChanger::QskSkinStateChanger( const QskSkinnable* skinnable ) inline QskSkinStateChanger::~QskSkinStateChanger() { - if ( m_oldStates != m_skinnable->skinStates() ) - m_skinnable->replaceSkinStates( m_oldStates ); + resetStates(); } inline void QskSkinStateChanger::setStates( QskAspect::States states ) @@ -40,4 +40,10 @@ inline void QskSkinStateChanger::setStates( QskAspect::States states ) m_skinnable->replaceSkinStates( states ); } +inline void QskSkinStateChanger::resetStates() +{ + if ( m_oldStates != m_skinnable->skinStates() ) + m_skinnable->replaceSkinStates( m_oldStates ); +} + #endif