febcd88794ab2c4204e4c3785b9dea208b508bb5

Author
outfoxxed <outfoxxed@outfoxxed.me>
Committer
outfoxxed <outfoxxed@outfoxxed.me>
Date

Message

Fix crash when moving window to empty workspace

Closes #16

Diff

 1diff --git a/flake.lock b/flake.lock
 2index 1a69719357cbc9a8b5e802ff4f1beab268d04ea7..99cfb40b4149f86034e0046c5a96546b88d49836 100644
 3--- a/flake.lock
 4+++ b/flake.lock
 5@@ -8,11 +8,11 @@
 6         "xdph": "xdph"
 7       },
 8       "locked": {
 9-        "lastModified": 1689799203,
10-        "narHash": "sha256-N2/zV/HurGH83zQL7JKhRhfw02sdcZ8JIxH7wC2OVko=",
11+        "lastModified": 1691612137,
12+        "narHash": "sha256-7nMCJIZBB2XIjUqAjImoTaZBVIg/0REripGdNsClxlQ=",
13         "owner": "hyprwm",
14         "repo": "Hyprland",
15-        "rev": "7091d4e5979720ddb30f540b2d7da48080bf2487",
16+        "rev": "126792584fa4eb25f6c8e3b3eb6bfb00b58a787a",
17         "type": "github"
18       },
19       "original": {
20@@ -44,11 +44,11 @@
21     },
22     "nixpkgs": {
23       "locked": {
24-        "lastModified": 1688500189,
25-        "narHash": "sha256-djYYiY4lzJOlXOnTHytH6BUugrxHDZjuGxTSrU4gt4M=",
26+        "lastModified": 1690179384,
27+        "narHash": "sha256-+arbgqFTAtoeKtepW9wCnA0njCOyoiDFyl0Q0SBSOtE=",
28         "owner": "NixOS",
29         "repo": "nixpkgs",
30-        "rev": "78419edadf0fabbe5618643bd850b2f2198ed060",
31+        "rev": "b12803b6d90e2e583429bb79b859ca53c348b39a",
32         "type": "github"
33       },
34       "original": {
35@@ -67,17 +67,18 @@
36       "flake": false,
37       "locked": {
38         "host": "gitlab.freedesktop.org",
39-        "lastModified": 1689611045,
40-        "narHash": "sha256-3RTOlQabkNetQ4O4UzSf57JPco9VGVHhSU1ls5uKBeE=",
41+        "lastModified": 1691073628,
42+        "narHash": "sha256-LlxE3o3UzRY7APYVLGNKM30DBMcDifCRIQiMVSbYLIc=",
43         "owner": "wlroots",
44         "repo": "wlroots",
45-        "rev": "7791ffe0584c4ac13c170e1661ce33bdbd4a9b9e",
46+        "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5",
47         "type": "gitlab"
48       },
49       "original": {
50         "host": "gitlab.freedesktop.org",
51         "owner": "wlroots",
52         "repo": "wlroots",
53+        "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5",
54         "type": "gitlab"
55       }
56     },
57@@ -93,11 +94,11 @@
58         ]
59       },
60       "locked": {
61-        "lastModified": 1685385764,
62-        "narHash": "sha256-r+XMyOoRXq+hlfjayb+fyi9kq2JK48TrwuNIAXqlj7U=",
63+        "lastModified": 1691082525,
64+        "narHash": "sha256-C5AO0KnyAFJaCkOn+5nJfWm0kyiPn/Awh0lKTjhgr7Y=",
65         "owner": "hyprwm",
66         "repo": "xdg-desktop-portal-hyprland",
67-        "rev": "4d9ff0c17716936e0b5ca577a39e263633901ed1",
68+        "rev": "42747d267ab4345c4ceb78cd4a4fe99f072d80fc",
69         "type": "github"
70       },
71       "original": {
72diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
73index 1c3ed1c31080faf8c65e4fdc8fdc49f3ceaf11f9..e18d031c9a5c24219fdab2c2da82af0e9deee039 100644
74--- a/src/Hy3Layout.cpp
75+++ b/src/Hy3Layout.cpp
76@@ -1267,7 +1267,9 @@ Hy3Node* Hy3Layout::getNodeFromWindow(CWindow* window) {
77 
78 void Hy3Layout::applyNodeDataToWindow(Hy3Node* node, bool no_animation) {
79 	if (node->data.type != Hy3NodeType::Window) return;
80-	CWindow* window = node->data.as_window;
81+	auto* window = node->data.as_window;
82+	auto root_node = this->getWorkspaceRootGroup(window->m_iWorkspaceID);
83+	if (root_node == nullptr) return;
84 
85 	CMonitor* monitor = nullptr;
86 
87@@ -1309,7 +1311,6 @@ void Hy3Layout::applyNodeDataToWindow(Hy3Node* node, bool no_animation) {
88 	auto calcPos = window->m_vPosition + Vector2D(*border_size, *border_size);
89 	auto calcSize = window->m_vSize - Vector2D(2 * *border_size, 2 * *border_size);
90 
91-	auto root_node = this->getWorkspaceRootGroup(window->m_iWorkspaceID);
92 	auto only_node = root_node->data.as_group.children.size() == 1
93 	              && root_node->data.as_group.children.front()->data.type == Hy3NodeType::Window;
94