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,19 +323,26 @@ void Hy3Layout::recalculateMonitor(const int& monitor_id) {
g_pHyprRenderer->damageMonitor(monitor);
const auto workspace = g_pCompositor->getWorkspaceByID(monitor->activeWorkspace);
if (workspace == nullptr) return;
// todo: refactor this
if (monitor->specialWorkspaceID) {
const auto top_node = this->getWorkspaceRootGroup(monitor->specialWorkspaceID);
auto* top_node = this->getWorkspaceRootGroup(monitor->activeWorkspace);
if (top_node != nullptr) {
top_node->position = monitor->vecPosition + monitor->vecReservedTopLeft;
top_node->size =
monitor->vecSize - monitor->vecReservedTopLeft - monitor->vecReservedBottomRight;
top_node->recalcSizePosRecursive();
}
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;
top_node->recalcSizePosRecursive();
}
}
}
void Hy3Layout::recalculateWindow(CWindow* window) {