diff --git a/src/ui/cuimenucheckbox.cpp b/src/ui/cuimenucheckbox.cpp index d5e583786..c77f8e9f7 100644 --- a/src/ui/cuimenucheckbox.cpp +++ b/src/ui/cuimenucheckbox.cpp @@ -42,7 +42,7 @@ void cUIMenuCheckBox::Active( const bool& active ) { if ( mActive ) { if ( NULL != mSkinActive ) { - if ( mSkinState->GetState() == cUISkinState::StateMouseEnter ) + if ( mSkinState->GetState() == cUISkinState::StateSelected ) Icon( mSkinActive->GetShape( cUISkinState::StateMouseEnter ) ); else Icon( mSkinActive->GetShape( cUISkinState::StateNormal ) ); @@ -50,7 +50,7 @@ void cUIMenuCheckBox::Active( const bool& active ) { mIcon->Shape( NULL ); } else { if ( NULL != mSkinInactive ) - if ( mSkinState->GetState() == cUISkinState::StateMouseEnter ) + if ( mSkinState->GetState() == cUISkinState::StateSelected ) Icon( mSkinInactive->GetShape( cUISkinState::StateMouseEnter ) ); else Icon( mSkinInactive->GetShape( cUISkinState::StateNormal ) ); diff --git a/src/ui/cuimenusubmenu.cpp b/src/ui/cuimenusubmenu.cpp index b9df0de4a..55fa5b206 100644 --- a/src/ui/cuimenusubmenu.cpp +++ b/src/ui/cuimenusubmenu.cpp @@ -51,7 +51,7 @@ void cUIMenuSubMenu::OnStateChange() { cUIMenuItem::OnStateChange(); if ( NULL != mSkinArrow ) { - if ( mSkinState->GetState() == cUISkinState::StateMouseEnter ) + if ( mSkinState->GetState() == cUISkinState::StateSelected ) mArrow->Shape( mSkinArrow->GetShape( cUISkinState::StateMouseEnter ) ); else mArrow->Shape( mSkinArrow->GetShape( cUISkinState::StateNormal ) ); diff --git a/src/ui/cuiskinstate.cpp b/src/ui/cuiskinstate.cpp index 0fc68b4eb..83fba2776 100644 --- a/src/ui/cuiskinstate.cpp +++ b/src/ui/cuiskinstate.cpp @@ -24,6 +24,10 @@ void cUISkinState::StateBack( const Uint32& State ) { return; } + if ( mCurState == StateSelected && ( State == StateMouseDown || State == StateFocus ) ) { + return; + } + if ( !( mCurState == StateFocus && ( State == StateMouseEnter || State == StateMouseExit || State == StateMouseDown ) ) ) { mLastState = mCurState; mCurState = StateNormal;