diff --git a/src/test/ee.cpp b/src/test/ee.cpp index 56306baaa..923a7a388 100644 --- a/src/test/ee.cpp +++ b/src/test/ee.cpp @@ -655,8 +655,8 @@ void cEETest::MainClick( const cUIEvent * Event ) { const cUIEventMouse * MouseEvent = reinterpret_cast ( Event ); if ( MouseEvent->Flags() & EE_BUTTON_RMASK ) { - Menu->Pos( MouseEvent->Pos() ); - Menu->Show(); + if ( Menu->Show() ) + Menu->Pos( MouseEvent->Pos() ); } } diff --git a/src/ui/cuipopupmenu.cpp b/src/ui/cuipopupmenu.cpp index 56c1f2787..666bba563 100644 --- a/src/ui/cuipopupmenu.cpp +++ b/src/ui/cuipopupmenu.cpp @@ -17,7 +17,7 @@ void cUIPopUpMenu::SetTheme( cUITheme * Theme ) { DoAfterSetTheme(); } -void cUIPopUpMenu::Show() { +bool cUIPopUpMenu::Show() { if ( !Visible() ) { Enabled( true ); Visible( true ); @@ -28,16 +28,26 @@ void cUIPopUpMenu::Show() { CreateFadeIn( cUIThemeManager::instance()->ControlsFadeInTime() ); cUIManager::instance()->FocusControl( this ); + + return true; } + + return false; } -void cUIPopUpMenu::Hide() { - if ( cUIThemeManager::instance()->DefaultEffectsEnabled() ) { - DisableFadeOut( cUIThemeManager::instance()->ControlsFadeOutTime() ); - } else { - Enabled( false ); - Visible( false ); +bool cUIPopUpMenu::Hide() { + if ( Visible() ) { + if ( cUIThemeManager::instance()->DefaultEffectsEnabled() ) { + DisableFadeOut( cUIThemeManager::instance()->ControlsFadeOutTime() ); + } else { + Enabled( false ); + Visible( false ); + } + + return true; } + + return false; } void cUIPopUpMenu::OnComplexControlFocusLoss() { @@ -49,7 +59,7 @@ Uint32 cUIPopUpMenu::OnMessage( const cUIMessage * Msg ) { case cUIMessage::MsgClick: { Hide(); - + return 1; } } diff --git a/src/ui/cuipopupmenu.hpp b/src/ui/cuipopupmenu.hpp index f17c70f89..1fe5dd20e 100644 --- a/src/ui/cuipopupmenu.hpp +++ b/src/ui/cuipopupmenu.hpp @@ -8,17 +8,17 @@ namespace EE { namespace UI { class cUIPopUpMenu : public cUIMenu { public: cUIPopUpMenu( cUIPopUpMenu::CreateParams Params ); - + ~cUIPopUpMenu(); - + virtual void SetTheme( cUITheme * Theme ); - - void Show(); - - void Hide(); + + bool Show(); + + bool Hide(); protected: virtual void OnComplexControlFocusLoss(); - + virtual Uint32 OnMessage( const cUIMessage * Msg ); };