summaryrefslogtreecommitdiff
path: root/src/events/Popups.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-06-30 15:44:26 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-06-30 15:44:26 +0200
commit328b3fa4bc4f3776f2128f84709556569c4824d9 (patch)
treee00603cdf3b868facaa06478b02030c540ba283c /src/events/Popups.cpp
parentd1564299d23b52e6297fa4542ce42e4a54c28cbc (diff)
mordernize pointers
Diffstat (limited to 'src/events/Popups.cpp')
-rw-r--r--src/events/Popups.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/events/Popups.cpp b/src/events/Popups.cpp
index 7e619632..cfb92f9b 100644
--- a/src/events/Popups.cpp
+++ b/src/events/Popups.cpp
@@ -76,8 +76,7 @@ void Events::listener_newPopup(void* owner, void* data) {
const auto WLRPOPUP = (wlr_xdg_popup*)data;
- g_pCompositor->m_lXDGPopups.push_back(SXDGPopup());
- const auto PNEWPOPUP = &g_pCompositor->m_lXDGPopups.back();
+ const auto PNEWPOPUP = g_pCompositor->m_vXDGPopups.emplace_back(std::make_unique<SXDGPopup>()).get();
const auto PMONITOR = g_pCompositor->getMonitorFromID(layersurface->monitorID);
@@ -97,8 +96,7 @@ void Events::listener_newPopupXDG(void* owner, void* data) {
const auto WLRPOPUP = (wlr_xdg_popup*)data;
- g_pCompositor->m_lXDGPopups.push_back(SXDGPopup());
- const auto PNEWPOPUP = &g_pCompositor->m_lXDGPopups.back();
+ const auto PNEWPOPUP = g_pCompositor->m_vXDGPopups.emplace_back(std::make_unique<SXDGPopup>()).get();
const auto PMONITOR = g_pCompositor->getMonitorFromID(PWINDOW->m_iMonitorID);
@@ -122,8 +120,7 @@ void Events::listener_newPopupFromPopupXDG(void* owner, void* data) {
const auto WLRPOPUP = (wlr_xdg_popup*)data;
- g_pCompositor->m_lXDGPopups.push_back(SXDGPopup());
- const auto PNEWPOPUP = &g_pCompositor->m_lXDGPopups.back();
+ const auto PNEWPOPUP = g_pCompositor->m_vXDGPopups.emplace_back(std::make_unique<SXDGPopup>()).get();
PNEWPOPUP->popup = WLRPOPUP;
PNEWPOPUP->parentPopup = PPOPUP;
@@ -170,5 +167,5 @@ void Events::listener_destroyPopupXDG(void* owner, void* data) {
PPOPUP->pSurfaceTree = nullptr;
}
- g_pCompositor->m_lXDGPopups.remove(*PPOPUP);
+ g_pCompositor->m_vXDGPopups.erase(std::remove_if(g_pCompositor->m_vXDGPopups.begin(), g_pCompositor->m_vXDGPopups.end(), [&](std::unique_ptr<SXDGPopup>& el) { return el.get() == PPOPUP; }));
} \ No newline at end of file