ae2409d037c7767d05fa96ffccaa005effa1bcde
- Author
- outfoxxed <outfoxxed@outfoxxed.me>
- Committer
- outfoxxed <outfoxxed@outfoxxed.me>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
2index 3b60afdf861a475f1ab256e83b460795279650e6..a73796d897d6fd3021409b2a26f980573bc7036d 100644
3--- a/src/Hy3Layout.cpp
4+++ b/src/Hy3Layout.cpp
5@@ -37,9 +37,9 @@ Hy3GroupData::~Hy3GroupData() {
6
7 Hy3NodeData::Hy3NodeData(): Hy3NodeData((CWindow*) nullptr) {}
8
9-Hy3NodeData::Hy3NodeData(CWindow* window): type(Hy3NodeData::Window) { this->as_window = window; }
10+Hy3NodeData::Hy3NodeData(CWindow* window): type(Hy3NodeType::Window) { this->as_window = window; }
11
12-Hy3NodeData::Hy3NodeData(Hy3GroupData group): type(Hy3NodeData::Group) {
13+Hy3NodeData::Hy3NodeData(Hy3GroupData group): type(Hy3NodeType::Group) {
14 new (&this->as_group) Hy3GroupData(std::move(group));
15 }
16
17@@ -47,12 +47,12 @@ Hy3NodeData::Hy3NodeData(Hy3GroupLayout layout): Hy3NodeData(Hy3GroupData(layout
18
19 Hy3NodeData::~Hy3NodeData() {
20 switch (this->type) {
21- case Hy3NodeData::Window: break;
22- case Hy3NodeData::Group:
23+ case Hy3NodeType::Window: break;
24+ case Hy3NodeType::Group:
25 this->as_group.~Hy3GroupData();
26
27 // who ever thought calling the dtor after a move was a good idea?
28- this->type = Hy3NodeData::Window;
29+ this->type = Hy3NodeType::Window;
30 break;
31 }
32 }
33@@ -62,12 +62,12 @@ Hy3NodeData::Hy3NodeData(Hy3NodeData&& from): type(from.type) {
34 LOG,
35 "Move CTor type matches? %d is group? %d",
36 this->type == from.type,
37- this->type == Hy3NodeData::Group
38+ this->type == Hy3NodeType::Group
39 );
40
41 switch (from.type) {
42- case Hy3NodeData::Window: this->as_window = from.as_window; break;
43- case Hy3NodeData::Group: new (&this->as_group) Hy3GroupData(std::move(from.as_group)); break;
44+ case Hy3NodeType::Window: this->as_window = from.as_window; break;
45+ case Hy3NodeType::Group: new (&this->as_group) Hy3GroupData(std::move(from.as_group)); break;
46 }
47 }
48
49@@ -76,18 +76,18 @@ Hy3NodeData& Hy3NodeData::operator=(Hy3NodeData&& from) {
50 LOG,
51 "operator= type matches? %d is group? %d",
52 this->type == from.type,
53- this->type == Hy3NodeData::Group
54+ this->type == Hy3NodeType::Group
55 );
56
57- if (this->type == Hy3NodeData::Group) {
58+ if (this->type == Hy3NodeType::Group) {
59 this->as_group.~Hy3GroupData();
60 }
61
62 this->type = from.type;
63
64 switch (this->type) {
65- case Hy3NodeData::Window: this->as_window = from.as_window; break;
66- case Hy3NodeData::Group: new (&this->as_group) Hy3GroupData(std::move(from.as_group)); break;
67+ case Hy3NodeType::Window: this->as_window = from.as_window; break;
68+ case Hy3NodeType::Group: new (&this->as_group) Hy3GroupData(std::move(from.as_group)); break;
69 }
70
71 return *this;
72@@ -136,7 +136,7 @@ void Hy3Node::recalcSizePosRecursive(bool no_animation) {
73
74 double tab_height_offset = *tab_bar_height + *tab_bar_padding;
75
76- if (this->data.type != Hy3NodeData::Group) {
77+ if (this->data.type != Hy3NodeType::Group) {
78 this->data.as_window->setHidden(this->hidden);
79 this->layout->applyNodeDataToWindow(this, no_animation);
80 return;
81@@ -246,7 +246,7 @@ void Hy3Node::recalcSizePosRecursive(bool no_animation) {
82 void Hy3Node::setHidden(bool hidden) {
83 this->hidden = hidden;
84
85- if (this->data.type == Hy3NodeData::Group) {
86+ if (this->data.type == Hy3NodeType::Group) {
87 for (auto* child: this->data.as_group.children) {
88 child->setHidden(hidden);
89 }
90@@ -255,8 +255,8 @@ void Hy3Node::setHidden(bool hidden) {
91
92 bool Hy3Node::isUrgent() {
93 switch (this->data.type) {
94- case Hy3NodeData::Window: return this->data.as_window->m_bIsUrgent;
95- case Hy3NodeData::Group:
96+ case Hy3NodeType::Window: return this->data.as_window->m_bIsUrgent;
97+ case Hy3NodeType::Group:
98 for (auto* child: this->data.as_group.children) {
99 if (child->isUrgent()) return true;
100 }
101@@ -280,8 +280,8 @@ bool Hy3Node::isIndirectlyFocused() {
102
103 std::string Hy3Node::getTitle() {
104 switch (this->data.type) {
105diff --git a/src/Hy3Layout.hpp b/src/Hy3Layout.hpp
106index 1b466d85d3d9b9b2c22a05ea6d576174019978a3..bc4e6c6e4941d96dc9be5051f089b956f24bb3d4 100644
107--- a/src/Hy3Layout.hpp
108+++ b/src/Hy3Layout.hpp
109@@ -15,6 +15,11 @@ enum class Hy3GroupLayout {
110 Tabbed,
111 };
112
113+enum class Hy3NodeType {
114+ Window,
115+ Group,
116+};
117+
118 enum class ShiftDirection {
119 Left,
120 Up,
121@@ -65,7 +70,7 @@ private:
122
123 class Hy3NodeData {
124 public:
125- enum { Group, Window } type;
126+ Hy3NodeType type;
127 union {
128 Hy3GroupData as_group;
129 CWindow* as_window;
130diff --git a/src/TabGroup.cpp b/src/TabGroup.cpp
131index 523a39aa8b6dc7527d193edbbe74bf93ecd82438..e0942eb013a32086c90c3e4ee6e530feb135e281 100644
132--- a/src/TabGroup.cpp
133+++ b/src/TabGroup.cpp
134@@ -647,8 +647,8 @@ void Hy3TabGroup::renderTabBar() {
135
136 void findOverlappingWindows(Hy3Node& node, float height, std::vector<CWindow*>& windows) {
137 switch (node.data.type) {
138- case Hy3NodeData::Window: windows.push_back(node.data.as_window); break;
139- case Hy3NodeData::Group:
140+ case Hy3NodeType::Window: windows.push_back(node.data.as_window); break;
141+ case Hy3NodeType::Group:
142 auto& group = node.data.as_group;
143
144 switch (group.layout) {