Fix scratchpad support (i was an idiot)

This commit is contained in:
LordGrimmauld 2024-03-11 10:42:19 +01:00
parent 1a13229343
commit 293a12d0b7

View File

@ -88,7 +88,7 @@ struct SwayRecord {
explicit SwayRecord(const json &rep) : explicit SwayRecord(const json &rep) :
id(rep["id"]), id(rep["id"]),
name(rep["name"].is_null() ? "untitled container" : rep["name"]), name(getName(rep)),
type(NodeType::fromString(rep["type"])), type(NodeType::fromString(rep["type"])),
border(rep["border"]), border(rep["border"]),
current_border_width(rep["current_border_width"]), current_border_width(rep["current_border_width"]),
@ -115,6 +115,17 @@ struct SwayRecord {
[[nodiscard]] bool operator==(const SwayRecord &other) const { [[nodiscard]] bool operator==(const SwayRecord &other) const {
return this->id == other.id; return this->id == other.id;
} }
private:
static std::string getName(const json& rep) {
if(rep["name"].is_null())
return "Untitled Container";
std::string internal = rep["name"];
if (internal == "__i3" && NodeType::fromString(rep["type"]) == NodeType::output)
return "Virtual Display";
if (internal == "__i3_scratch" && NodeType::fromString(rep["type"]) == NodeType::workspace)
return "Scratchpad";
return internal;
}
}; };
class SwayTreeNode : public AbstractTreeNode<SwayTreeNode> { class SwayTreeNode : public AbstractTreeNode<SwayTreeNode> {
@ -128,12 +139,10 @@ public:
this->appendChild(childNode); this->appendChild(childNode);
} }
/*
for (const auto &child: rep["floating_nodes"]) { for (const auto &child: rep["floating_nodes"]) {
auto childNode = std::make_unique<SwayTreeNode>(child, this); auto childNode = std::make_unique<SwayTreeNode>(child, this);
this->appendChild(childNode); this->appendChild(childNode);
} }
*/
} }
explicit SwayTreeNode(SwayTreeNode *parent = nullptr) : node(SwayRecord()), AbstractTreeNode(parent) {}; explicit SwayTreeNode(SwayTreeNode *parent = nullptr) : node(SwayRecord()), AbstractTreeNode(parent) {};