f4081531bdc8c9f5a38261867b7107c746db7eee
- Author
- outfoxxed <outfoxxed@outfoxxed.me>
- Committer
- outfoxxed <outfoxxed@outfoxxed.me>
- Date
Message
Recalculate root node when recalculateMonitor is called
Fixes bars being overlaid on windows and mismatched fullscreen sizes.
Diff
1diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
2index 9c9c717062ce7a9461ec9e52ecb9ba35e8432953..f15f99879f14776337d963b09640a0afebba8cd8 100644
3--- a/src/Hy3Layout.cpp
4+++ b/src/Hy3Layout.cpp
5@@ -323,18 +323,25 @@ void Hy3Layout::recalculateMonitor(const int& monitor_id) {
6
7 g_pHyprRenderer->damageMonitor(monitor);
8
9- const auto workspace = g_pCompositor->getWorkspaceByID(monitor->activeWorkspace);
10- if (workspace == nullptr) return;
11+ // todo: refactor this
12
13- if (monitor->specialWorkspaceID) {
14- const auto top_node = this->getWorkspaceRootGroup(monitor->specialWorkspaceID);
15+ auto* top_node = this->getWorkspaceRootGroup(monitor->activeWorkspace);
16+ if (top_node != nullptr) {
17+ top_node->position = monitor->vecPosition + monitor->vecReservedTopLeft;
18+ top_node->size =
19+ monitor->vecSize - monitor->vecReservedTopLeft - monitor->vecReservedBottomRight;
20
21- if (top_node != nullptr) {
22- top_node->position = monitor->vecPosition + monitor->vecReservedTopLeft;
23- top_node->size =
24- monitor->vecSize - monitor->vecReservedTopLeft - monitor->vecReservedBottomRight;
25- top_node->recalcSizePosRecursive();
26- }
27+ top_node->recalcSizePosRecursive();
28+ }
29+
30+ top_node = this->getWorkspaceRootGroup(monitor->specialWorkspaceID);
31+
32+ if (top_node != nullptr) {
33+ top_node->position = monitor->vecPosition + monitor->vecReservedTopLeft;
34+ top_node->size =
35+ monitor->vecSize - monitor->vecReservedTopLeft - monitor->vecReservedBottomRight;
36+
37+ top_node->recalcSizePosRecursive();
38 }
39 }
40