mirror of
https://github.com/hyprwm/Hyprland
synced 2024-12-23 00:09:49 +01:00
Use C++-styled pointers for decorations
This commit is contained in:
parent
08e0567d3a
commit
894ae2d742
4 changed files with 5 additions and 10 deletions
|
@ -13,7 +13,4 @@ CWindow::~CWindow() {
|
|||
g_pCompositor->m_pLastFocus = nullptr;
|
||||
g_pCompositor->m_pLastWindow = nullptr;
|
||||
}
|
||||
|
||||
for (auto& wd : m_dWindowDecorations)
|
||||
delete wd;
|
||||
}
|
|
@ -91,7 +91,7 @@ public:
|
|||
bool m_bHidden = false;
|
||||
|
||||
// Window decorations
|
||||
std::deque<IHyprWindowDecoration*> m_dWindowDecorations;
|
||||
std::deque<std::unique_ptr<IHyprWindowDecoration>> m_dWindowDecorations;
|
||||
|
||||
// Special render data, rules, etc
|
||||
SWindowSpecialRenderData m_sSpecialRenderData;
|
||||
|
|
|
@ -277,7 +277,7 @@ void CHyprDwindleLayout::onWindowCreated(CWindow* pWindow) {
|
|||
// means we opened on a group
|
||||
|
||||
// add the group deco
|
||||
pWindow->m_dWindowDecorations.emplace_back(new CHyprGroupBarDecoration(pWindow));
|
||||
pWindow->m_dWindowDecorations.emplace_back(std::make_unique<CHyprGroupBarDecoration>(pWindow));
|
||||
|
||||
PNODE->pGroupParent = OPENINGON->pGroupParent;
|
||||
PNODE->pGroupParent->groupMembers.push_back(PNODE);
|
||||
|
@ -733,7 +733,7 @@ void CHyprDwindleLayout::toggleWindowGroup(CWindow* pWindow) {
|
|||
c->pGroupParent = PPARENT;
|
||||
c->pWindow->m_cRealBorderColor = GROUPINACTIVEBORDERCOL;
|
||||
|
||||
c->pWindow->m_dWindowDecorations.push_back(new CHyprGroupBarDecoration(c->pWindow));
|
||||
c->pWindow->m_dWindowDecorations.push_back(std::make_unique<CHyprGroupBarDecoration>(c->pWindow));
|
||||
|
||||
if (c->pWindow == g_pCompositor->m_pLastWindow)
|
||||
c->pWindow->m_cRealBorderColor = CColor(g_pConfigManager->getInt("dwindle:col.group_border_active"));
|
||||
|
|
|
@ -37,9 +37,8 @@ void CHyprGroupBarDecoration::updateWindow(CWindow* pWindow) {
|
|||
if (g_pLayoutManager->getCurrentLayout()->getLayoutName() != "dwindle") {
|
||||
// ????
|
||||
for (auto it = pWindow->m_dWindowDecorations.begin(); it != pWindow->m_dWindowDecorations.end(); it++) {
|
||||
if ((*it) == this) {
|
||||
if (it->get() == this) {
|
||||
pWindow->m_dWindowDecorations.erase(it);
|
||||
delete this;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -56,9 +55,8 @@ void CHyprGroupBarDecoration::updateWindow(CWindow* pWindow) {
|
|||
if (m_dwGroupMembers.size() == 0) {
|
||||
// remove
|
||||
for (auto it = pWindow->m_dWindowDecorations.begin(); it != pWindow->m_dWindowDecorations.end(); it++) {
|
||||
if ((*it) == this) {
|
||||
if (it->get() == this) {
|
||||
pWindow->m_dWindowDecorations.erase(it);
|
||||
delete this;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue