void sendmouse(Cursor::Mousestate mst, vector2d<int16_t> pos) { cursor.setposition(pos); if (focused != Element::NONE) { if (elements[focused]->isactive()) elements[focused]->sendmouse(mst == Cursor::MST_CLICKING, pos); else focused = Element::NONE; } if (focused == Element::NONE) { UIElement* front = nullptr; if (enabled) { for (auto& elit : elements) { if (elit.second->isactive() && elit.second->bounds().contains(pos)) { if (front) { front->sendmouse(false, pos); } front = elit.second.get(); } } } if (front) { mst = front->sendmouse(mst == Cursor::MST_CLICKING, pos); } else { mst = Cursor::MST_IDLE; } } cursor.setstate(mst); }