Recalculate root node when recalculateMonitor is called

Fixes bars being overlaid on windows and mismatched fullscreen sizes.
This commit is contained in:
outfoxxed 2023-11-04 03:08:54 -07:00
parent 6cf58b9c3d
commit f4081531bd
No known key found for this signature in database
GPG key ID: 4C88A185FB89301E

View file

@ -323,18 +323,25 @@ void Hy3Layout::recalculateMonitor(const int& monitor_id) {
g_pHyprRenderer->damageMonitor(monitor); g_pHyprRenderer->damageMonitor(monitor);
const auto workspace = g_pCompositor->getWorkspaceByID(monitor->activeWorkspace); // todo: refactor this
if (workspace == nullptr) return;
if (monitor->specialWorkspaceID) { auto* top_node = this->getWorkspaceRootGroup(monitor->activeWorkspace);
const auto top_node = this->getWorkspaceRootGroup(monitor->specialWorkspaceID); if (top_node != nullptr) {
top_node->position = monitor->vecPosition + monitor->vecReservedTopLeft;
top_node->size =
monitor->vecSize - monitor->vecReservedTopLeft - monitor->vecReservedBottomRight;
if (top_node != nullptr) { top_node->recalcSizePosRecursive();
top_node->position = monitor->vecPosition + monitor->vecReservedTopLeft; }
top_node->size =
monitor->vecSize - monitor->vecReservedTopLeft - monitor->vecReservedBottomRight; top_node = this->getWorkspaceRootGroup(monitor->specialWorkspaceID);
top_node->recalcSizePosRecursive();
} if (top_node != nullptr) {
top_node->position = monitor->vecPosition + monitor->vecReservedTopLeft;
top_node->size =
monitor->vecSize - monitor->vecReservedTopLeft - monitor->vecReservedBottomRight;
top_node->recalcSizePosRecursive();
} }
} }