diff --git a/client/gui/CGuiHandler.cpp b/client/gui/CGuiHandler.cpp index 573384e79..baa792ac0 100644 --- a/client/gui/CGuiHandler.cpp +++ b/client/gui/CGuiHandler.cpp @@ -98,9 +98,12 @@ void CGuiHandler::init() pointerSpeedMultiplier = settings["general"]["relativePointerSpeedMultiplier"].Float(); } +static bool debugDetectDeactivationDuringHandle = false; + void CGuiHandler::handleElementActivate(CIntObject * elem, ui16 activityFlag) { processLists(activityFlag,[&](std::list * lst){ + assert(debugDetectDeactivationDuringHandle == false); lst->push_front(elem); }); elem->active_m |= activityFlag; @@ -109,6 +112,7 @@ void CGuiHandler::handleElementActivate(CIntObject * elem, ui16 activityFlag) void CGuiHandler::handleElementDeActivate(CIntObject * elem, ui16 activityFlag) { processLists(activityFlag,[&](std::list * lst){ + assert(debugDetectDeactivationDuringHandle == false); auto hlp = std::find(lst->begin(),lst->end(),elem); assert(hlp != lst->end()); lst->erase(hlp); @@ -594,6 +598,7 @@ void CGuiHandler::handleMouseMotion(const SDL_Event & current) //sending active, hovered hoverable objects hover() call std::vector hlp; + debugDetectDeactivationDuringHandle = true; auto hoverableCopy = hoverable; for(auto & elem : hoverableCopy) { @@ -608,6 +613,7 @@ void CGuiHandler::handleMouseMotion(const SDL_Event & current) (elem)->hovered = false; } } + debugDetectDeactivationDuringHandle = false; assert(hoverableCopy == hoverable); for(auto & elem : hlp)