From d08be0ef41d5224911824ef3dd1fec8ea5f4717a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Fri, 2 Feb 2018 00:00:11 -0300 Subject: [PATCH] Minor fixes. --HG-- branch : dev-scene --- include/eepp/ui/uihelper.hpp | 3 ++- include/eepp/ui/uimanager.hpp | 1 + src/eepp/scene/node.cpp | 2 +- src/eepp/ui/uimanager.cpp | 4 +++- src/eepp/ui/uinode.cpp | 2 +- src/eepp/ui/uitooltip.cpp | 2 -- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/include/eepp/ui/uihelper.hpp b/include/eepp/ui/uihelper.hpp index a7e769c33..f959f32bf 100644 --- a/include/eepp/ui/uihelper.hpp +++ b/include/eepp/ui/uihelper.hpp @@ -30,7 +30,8 @@ enum NODE_FLAGS_VALUES { NODE_FLAG_WIDGET = (1<<22), NODE_FLAG_WINDOW = (1<<23), NODE_FLAG_REPORT_SIZE_CHANGE_TO_CHILDS = (1<<24), - NODE_FLAG_FREE_USE = (1<<25) + NODE_FLAG_OVER_FIND_ALLOWED = (1<<25), + NODE_FLAG_FREE_USE = (1<<26) }; #define UI_HALIGN_LEFT TEXT_ALIGN_LEFT diff --git a/include/eepp/ui/uimanager.hpp b/include/eepp/ui/uimanager.hpp index 08fa47a4d..0ed303a3c 100644 --- a/include/eepp/ui/uimanager.hpp +++ b/include/eepp/ui/uimanager.hpp @@ -182,6 +182,7 @@ class EE_API UIManager { Color mHighlightInvalidationColor; Vector2f mMousePos; Vector2i mMousePosi; + Vector2f mLastMousePos; Vector2i mMouseDownPos; bool mInit; diff --git a/src/eepp/scene/node.cpp b/src/eepp/scene/node.cpp index 282da9872..08abb7d85 100644 --- a/src/eepp/scene/node.cpp +++ b/src/eepp/scene/node.cpp @@ -729,7 +729,7 @@ Node * Node::getLastChild() const { Node * Node::overFind( const Vector2f& Point ) { Node * pOver = NULL; - if ( mEnabled && mVisible ) { + if ( ( mNodeFlags & NODE_FLAG_OVER_FIND_ALLOWED ) && mEnabled && mVisible ) { updateWorldPolygon(); if ( mWorldBounds.contains( Point ) && mPoly.pointInside( Point ) ) { diff --git a/src/eepp/ui/uimanager.cpp b/src/eepp/ui/uimanager.cpp index eaa0e1007..950c47676 100644 --- a/src/eepp/ui/uimanager.cpp +++ b/src/eepp/ui/uimanager.cpp @@ -255,7 +255,7 @@ void UIManager::update( const Time& elapsed ) { if ( mInput->getReleaseTrigger() ) { if ( NULL != mFocusControl ) { - if ( !wasDraggingControl ) { + if ( !wasDraggingControl || mMousePos == mLastMousePos ) { if ( mOverControl != mFocusControl ) setFocusControl( mOverControl ); @@ -281,6 +281,8 @@ void UIManager::update( const Time& elapsed ) { mFirstPress = false; } + mLastMousePos = mMousePos; + checkClose(); } diff --git a/src/eepp/ui/uinode.cpp b/src/eepp/ui/uinode.cpp index eaa9c0d2d..23a7a8103 100644 --- a/src/eepp/ui/uinode.cpp +++ b/src/eepp/ui/uinode.cpp @@ -30,7 +30,7 @@ UINode::UINode() : mBorder( NULL ), mDragButton( EE_BUTTON_LMASK ) { - mNodeFlags |= NODE_FLAG_UINODE; + mNodeFlags |= NODE_FLAG_UINODE | NODE_FLAG_OVER_FIND_ALLOWED; } UINode::~UINode() { diff --git a/src/eepp/ui/uitooltip.cpp b/src/eepp/ui/uitooltip.cpp index 42a4302b2..e0c56d673 100644 --- a/src/eepp/ui/uitooltip.cpp +++ b/src/eepp/ui/uitooltip.cpp @@ -70,7 +70,6 @@ void UITooltip::show() { toFront(); setVisible( true ); - setEnabled( true ); if ( UIThemeManager::instance()->getDefaultEffectsEnabled() ) { startAlphaAnim( 255.f == mAlpha ? 0.f : mAlpha, 255.f, UIThemeManager::instance()->getControlsFadeInTime() ); @@ -84,7 +83,6 @@ void UITooltip::hide() { disableFadeOut( UIThemeManager::instance()->getControlsFadeOutTime() ); } else { setVisible( false ); - setEnabled( false ); } } }