summaryrefslogtreecommitdiff
path: root/src/protocols
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocols')
-rw-r--r--src/protocols/CursorShape.cpp12
-rw-r--r--src/protocols/CursorShape.hpp4
2 files changed, 5 insertions, 11 deletions
diff --git a/src/protocols/CursorShape.cpp b/src/protocols/CursorShape.cpp
index fb26d7a2..44f6a84f 100644
--- a/src/protocols/CursorShape.cpp
+++ b/src/protocols/CursorShape.cpp
@@ -48,11 +48,11 @@ CCursorShapeProtocol::CCursorShapeProtocol(const wl_interface* iface, const int&
}
void CCursorShapeProtocol::onManagerResourceDestroy(wl_resource* res) {
- std::erase_if(m_vManagers, [&](const auto& other) { return other->resource() == res; });
+ std::erase_if(m_vManagers, [res](const auto& other) { return other->resource() == res; });
}
void CCursorShapeProtocol::onDeviceResourceDestroy(wl_resource* res) {
- m_mDevices.erase(res);
+ std::erase_if(m_vDevices, [res](const auto& other) { return other->resource() == res; });
}
void CCursorShapeProtocol::bindManager(wl_client* client, void* data, uint32_t ver, uint32_t id) {
@@ -73,14 +73,8 @@ void CCursorShapeProtocol::onGetTabletToolV2(CWpCursorShapeManagerV1* pMgr, uint
}
void CCursorShapeProtocol::createCursorShapeDevice(CWpCursorShapeManagerV1* pMgr, uint32_t id, wl_resource* resource) {
- if (m_mDevices.contains(resource)) {
- LOGM(ERR, "CursorShape device already exists for {:x}", (uintptr_t)resource);
- wl_resource_post_error(resource, 0, "Device already exists");
- return;
- }
-
const auto CLIENT = wl_resource_get_client(pMgr->resource());
- const auto RESOURCE = m_mDevices.emplace(resource, std::make_shared<CWpCursorShapeDeviceV1>(CLIENT, wl_resource_get_version(pMgr->resource()), id)).first->second.get();
+ const auto RESOURCE = m_vDevices.emplace_back(std::make_shared<CWpCursorShapeDeviceV1>(CLIENT, wl_resource_get_version(pMgr->resource()), id));
RESOURCE->setOnDestroy([this](CWpCursorShapeDeviceV1* p) { this->onDeviceResourceDestroy(p->resource()); });
RESOURCE->setDestroy([this](CWpCursorShapeDeviceV1* p) { this->onDeviceResourceDestroy(p->resource()); });
diff --git a/src/protocols/CursorShape.hpp b/src/protocols/CursorShape.hpp
index 9a527f85..9fcca28d 100644
--- a/src/protocols/CursorShape.hpp
+++ b/src/protocols/CursorShape.hpp
@@ -33,8 +33,8 @@ class CCursorShapeProtocol : public IWaylandProtocol {
void createCursorShapeDevice(CWpCursorShapeManagerV1* pMgr, uint32_t id, wl_resource* resource);
//
- std::unordered_map<wl_resource*, SP<CWpCursorShapeDeviceV1>> m_mDevices;
- std::vector<UP<CWpCursorShapeManagerV1>> m_vManagers;
+ std::vector<SP<CWpCursorShapeDeviceV1>> m_vDevices;
+ std::vector<UP<CWpCursorShapeManagerV1>> m_vManagers;
};
namespace PROTO {