1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-13 19:54:17 +02:00

Fix closing dropdown box via clicking outside bounds

This commit is contained in:
Ivan Savenko
2023-06-22 22:34:05 +03:00
parent dfeeeb1f5f
commit 7c5dcfd47b

View File

@@ -447,6 +447,11 @@ TemplatesDropBox::TemplatesDropBox(RandomMapTab & randomMapTab, int3 size):
{ {
w->setAmount(curItems.size()); w->setAmount(curItems.size());
} }
//FIXME: this should be done by InterfaceObjectConfigurable, but might have side-effects
pos = children.front()->pos;
for (auto const & child : children)
pos = pos.include(child->pos);
updateListItems(); updateListItems();
} }
@@ -469,16 +474,10 @@ void TemplatesDropBox::sliderMove(int slidPos)
void TemplatesDropBox::clickLeft(tribool down, bool previousState) void TemplatesDropBox::clickLeft(tribool down, bool previousState)
{ {
if(down && !isActive()) if (!pos.isInside(GH.getCursorPosition()))
{ {
auto w = widget<CSlider>("slider"); assert(GH.windows().isTopWindow(this));
GH.windows().popWindows(1);
// pop the interface only if the mouse is not clicking on the slider
if (!w || !w->isMouseLeftButtonPressed())
{
assert(GH.windows().isTopWindow(this));
GH.windows().popWindows(1);
}
} }
} }