Fix crash when moving window to empty workspace

Closes #16
This commit is contained in:
outfoxxed 2023-08-10 00:32:13 -07:00
parent 2fa77b4dbc
commit febcd88794
No known key found for this signature in database
GPG key ID: 4C88A185FB89301E
2 changed files with 16 additions and 14 deletions

25
flake.lock generated
View file

@ -8,11 +8,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1689799203, "lastModified": 1691612137,
"narHash": "sha256-N2/zV/HurGH83zQL7JKhRhfw02sdcZ8JIxH7wC2OVko=", "narHash": "sha256-7nMCJIZBB2XIjUqAjImoTaZBVIg/0REripGdNsClxlQ=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "7091d4e5979720ddb30f540b2d7da48080bf2487", "rev": "126792584fa4eb25f6c8e3b3eb6bfb00b58a787a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -44,11 +44,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1688500189, "lastModified": 1690179384,
"narHash": "sha256-djYYiY4lzJOlXOnTHytH6BUugrxHDZjuGxTSrU4gt4M=", "narHash": "sha256-+arbgqFTAtoeKtepW9wCnA0njCOyoiDFyl0Q0SBSOtE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "78419edadf0fabbe5618643bd850b2f2198ed060", "rev": "b12803b6d90e2e583429bb79b859ca53c348b39a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -67,17 +67,18 @@
"flake": false, "flake": false,
"locked": { "locked": {
"host": "gitlab.freedesktop.org", "host": "gitlab.freedesktop.org",
"lastModified": 1689611045, "lastModified": 1691073628,
"narHash": "sha256-3RTOlQabkNetQ4O4UzSf57JPco9VGVHhSU1ls5uKBeE=", "narHash": "sha256-LlxE3o3UzRY7APYVLGNKM30DBMcDifCRIQiMVSbYLIc=",
"owner": "wlroots", "owner": "wlroots",
"repo": "wlroots", "repo": "wlroots",
"rev": "7791ffe0584c4ac13c170e1661ce33bdbd4a9b9e", "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
"host": "gitlab.freedesktop.org", "host": "gitlab.freedesktop.org",
"owner": "wlroots", "owner": "wlroots",
"repo": "wlroots", "repo": "wlroots",
"rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5",
"type": "gitlab" "type": "gitlab"
} }
}, },
@ -93,11 +94,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1685385764, "lastModified": 1691082525,
"narHash": "sha256-r+XMyOoRXq+hlfjayb+fyi9kq2JK48TrwuNIAXqlj7U=", "narHash": "sha256-C5AO0KnyAFJaCkOn+5nJfWm0kyiPn/Awh0lKTjhgr7Y=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "4d9ff0c17716936e0b5ca577a39e263633901ed1", "rev": "42747d267ab4345c4ceb78cd4a4fe99f072d80fc",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -1267,7 +1267,9 @@ Hy3Node* Hy3Layout::getNodeFromWindow(CWindow* window) {
void Hy3Layout::applyNodeDataToWindow(Hy3Node* node, bool no_animation) { void Hy3Layout::applyNodeDataToWindow(Hy3Node* node, bool no_animation) {
if (node->data.type != Hy3NodeType::Window) return; if (node->data.type != Hy3NodeType::Window) return;
CWindow* window = node->data.as_window; auto* window = node->data.as_window;
auto root_node = this->getWorkspaceRootGroup(window->m_iWorkspaceID);
if (root_node == nullptr) return;
CMonitor* monitor = nullptr; CMonitor* monitor = nullptr;
@ -1309,7 +1311,6 @@ void Hy3Layout::applyNodeDataToWindow(Hy3Node* node, bool no_animation) {
auto calcPos = window->m_vPosition + Vector2D(*border_size, *border_size); auto calcPos = window->m_vPosition + Vector2D(*border_size, *border_size);
auto calcSize = window->m_vSize - Vector2D(2 * *border_size, 2 * *border_size); auto calcSize = window->m_vSize - Vector2D(2 * *border_size, 2 * *border_size);
auto root_node = this->getWorkspaceRootGroup(window->m_iWorkspaceID);
auto only_node = root_node->data.as_group.children.size() == 1 auto only_node = root_node->data.as_group.children.size() == 1
&& root_node->data.as_group.children.front()->data.type == Hy3NodeType::Window; && root_node->data.as_group.children.front()->data.type == Hy3NodeType::Window;