mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-29 23:06:00 +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_pLastFocus = nullptr;
|
||||||
g_pCompositor->m_pLastWindow = nullptr;
|
g_pCompositor->m_pLastWindow = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto& wd : m_dWindowDecorations)
|
|
||||||
delete wd;
|
|
||||||
}
|
}
|
|
@ -91,7 +91,7 @@ public:
|
||||||
bool m_bHidden = false;
|
bool m_bHidden = false;
|
||||||
|
|
||||||
// Window decorations
|
// Window decorations
|
||||||
std::deque<IHyprWindowDecoration*> m_dWindowDecorations;
|
std::deque<std::unique_ptr<IHyprWindowDecoration>> m_dWindowDecorations;
|
||||||
|
|
||||||
// Special render data, rules, etc
|
// Special render data, rules, etc
|
||||||
SWindowSpecialRenderData m_sSpecialRenderData;
|
SWindowSpecialRenderData m_sSpecialRenderData;
|
||||||
|
|
|
@ -277,7 +277,7 @@ void CHyprDwindleLayout::onWindowCreated(CWindow* pWindow) {
|
||||||
// means we opened on a group
|
// means we opened on a group
|
||||||
|
|
||||||
// add the group deco
|
// 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 = OPENINGON->pGroupParent;
|
||||||
PNODE->pGroupParent->groupMembers.push_back(PNODE);
|
PNODE->pGroupParent->groupMembers.push_back(PNODE);
|
||||||
|
@ -733,7 +733,7 @@ void CHyprDwindleLayout::toggleWindowGroup(CWindow* pWindow) {
|
||||||
c->pGroupParent = PPARENT;
|
c->pGroupParent = PPARENT;
|
||||||
c->pWindow->m_cRealBorderColor = GROUPINACTIVEBORDERCOL;
|
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)
|
if (c->pWindow == g_pCompositor->m_pLastWindow)
|
||||||
c->pWindow->m_cRealBorderColor = CColor(g_pConfigManager->getInt("dwindle:col.group_border_active"));
|
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") {
|
if (g_pLayoutManager->getCurrentLayout()->getLayoutName() != "dwindle") {
|
||||||
// ????
|
// ????
|
||||||
for (auto it = pWindow->m_dWindowDecorations.begin(); it != pWindow->m_dWindowDecorations.end(); it++) {
|
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);
|
pWindow->m_dWindowDecorations.erase(it);
|
||||||
delete this;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,9 +55,8 @@ void CHyprGroupBarDecoration::updateWindow(CWindow* pWindow) {
|
||||||
if (m_dwGroupMembers.size() == 0) {
|
if (m_dwGroupMembers.size() == 0) {
|
||||||
// remove
|
// remove
|
||||||
for (auto it = pWindow->m_dWindowDecorations.begin(); it != pWindow->m_dWindowDecorations.end(); it++) {
|
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);
|
pWindow->m_dWindowDecorations.erase(it);
|
||||||
delete this;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue