mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-20 09:34:19 +00:00
Fix tooltip locations after window resize (fixes #5026)
This commit is contained in:
parent
6270b1c11d
commit
c174274edc
|
@ -30,32 +30,19 @@ inline void CTooltips::ClearActiveTooltip()
|
|||
void CTooltips::DoToolTip(const void *pID, const CUIRect *pNearRect, const char *pText, float WidthHint)
|
||||
{
|
||||
uintptr_t ID = reinterpret_cast<uintptr_t>(pID);
|
||||
const auto result = m_Tooltips.emplace(ID, CTooltip{
|
||||
*pNearRect,
|
||||
pText,
|
||||
WidthHint});
|
||||
CTooltip &Tooltip = result.first->second;
|
||||
|
||||
const auto &it = m_Tooltips.find(ID);
|
||||
|
||||
if(it == m_Tooltips.end())
|
||||
if(!result.second)
|
||||
{
|
||||
CTooltip NewTooltip = {
|
||||
*pNearRect,
|
||||
pText,
|
||||
WidthHint,
|
||||
};
|
||||
|
||||
m_Tooltips[ID] = NewTooltip;
|
||||
|
||||
CTooltip &Tooltip = m_Tooltips[ID];
|
||||
|
||||
if(UI()->MouseInside(&Tooltip.m_Rect))
|
||||
{
|
||||
SetActiveTooltip(Tooltip);
|
||||
}
|
||||
Tooltip.m_Rect = *pNearRect; // update in case of window resize
|
||||
}
|
||||
else
|
||||
if(UI()->MouseInside(&Tooltip.m_Rect))
|
||||
{
|
||||
if(UI()->MouseInside(&it->second.m_Rect))
|
||||
{
|
||||
SetActiveTooltip(it->second);
|
||||
}
|
||||
SetActiveTooltip(Tooltip);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue