diff --git a/src/layout/IHyprLayout.cpp b/src/layout/IHyprLayout.cpp index 22816716..274acb13 100644 --- a/src/layout/IHyprLayout.cpp +++ b/src/layout/IHyprLayout.cpp @@ -361,12 +361,15 @@ void IHyprLayout::onMouseMove(const Vector2D& mousePos) { else if (m_eGrabbedCorner == CORNER_BOTTOMLEFT) newPos = newPos + Vector2D((m_vBeginDragSizeXY - newSize).x, 0); + CBox wb = {newPos, newSize}; + wb.round(); + if (*PANIMATE) { - DRAGGINGWINDOW->m_vRealSize = newSize; - DRAGGINGWINDOW->m_vRealPosition = newPos; + DRAGGINGWINDOW->m_vRealSize = wb.size(); + DRAGGINGWINDOW->m_vRealPosition = wb.pos(); } else { - DRAGGINGWINDOW->m_vRealSize.setValueAndWarp(newSize); - DRAGGINGWINDOW->m_vRealPosition.setValueAndWarp(newPos); + DRAGGINGWINDOW->m_vRealSize.setValueAndWarp(wb.size()); + DRAGGINGWINDOW->m_vRealPosition.setValueAndWarp(wb.pos()); } g_pXWaylandManager->setWindowSize(DRAGGINGWINDOW, DRAGGINGWINDOW->m_vRealSize.goalv()); diff --git a/src/layout/MasterLayout.cpp b/src/layout/MasterLayout.cpp index e29addfd..57784786 100644 --- a/src/layout/MasterLayout.cpp +++ b/src/layout/MasterLayout.cpp @@ -700,10 +700,13 @@ void CHyprMasterLayout::applyNodeDataToWindow(SMasterNodeData* pNode) { g_pXWaylandManager->setWindowSize(PWINDOW, wb.size()); } else { - PWINDOW->m_vRealSize = calcSize; - PWINDOW->m_vRealPosition = calcPos; + CBox wb = {calcPos, calcSize}; + wb.round(); // avoid rounding mess - g_pXWaylandManager->setWindowSize(PWINDOW, calcSize); + PWINDOW->m_vRealPosition = wb.pos(); + PWINDOW->m_vRealSize = wb.size(); + + g_pXWaylandManager->setWindowSize(PWINDOW, wb.size()); } if (m_bForceWarps && !*PANIMATE) {