diff options
| author | Virt <41426325+VirtCode@users.noreply.github.com> | 2025-04-06 23:41:27 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-06 23:41:27 +0200 |
| commit | 51838fb5f5b5b03bca99b324fb1f6494d3854f89 (patch) | |
| tree | ec68bde21136d0d0bd7131019c56c7d66571cd60 /src/layout/IHyprLayout.cpp | |
| parent | 85f874d10f97b8bb35e79a9a219b0217e2938794 (diff) | |
layout: properly track floating window position (#9937)
Diffstat (limited to 'src/layout/IHyprLayout.cpp')
| -rw-r--r-- | src/layout/IHyprLayout.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/layout/IHyprLayout.cpp b/src/layout/IHyprLayout.cpp index b353a50c..a0f15f5c 100644 --- a/src/layout/IHyprLayout.cpp +++ b/src/layout/IHyprLayout.cpp @@ -618,6 +618,8 @@ void IHyprLayout::onMouseMove(const Vector2D& mousePos) { DRAGGINGWINDOW->sendWindowSize(); } + DRAGGINGWINDOW->m_vPosition = wb.pos(); + } else if (g_pInputManager->dragMode == MBIND_RESIZE || g_pInputManager->dragMode == MBIND_RESIZE_FORCE_RATIO || g_pInputManager->dragMode == MBIND_RESIZE_BLOCK_RATIO) { if (DRAGGINGWINDOW->m_bIsFloating) { @@ -689,6 +691,9 @@ void IHyprLayout::onMouseMove(const Vector2D& mousePos) { DRAGGINGWINDOW->m_vRealPosition->setValueAndWarp(wb.pos()); DRAGGINGWINDOW->sendWindowSize(); } + + DRAGGINGWINDOW->m_vPosition = wb.pos(); + DRAGGINGWINDOW->m_vSize = wb.size(); } else { resizeActiveWindow(TICKDELTA, m_eGrabbedCorner, DRAGGINGWINDOW); } @@ -780,8 +785,8 @@ void IHyprLayout::changeWindowFloatingMode(PHLWINDOW pWindow) { *pWindow->m_vRealPosition = wb.pos(); *pWindow->m_vRealSize = wb.size(); - pWindow->m_vSize = wb.pos(); - pWindow->m_vPosition = wb.size(); + pWindow->m_vSize = wb.size(); + pWindow->m_vPosition = wb.pos(); g_pHyprRenderer->damageMonitor(pWindow->m_pMonitor.lock()); @@ -810,6 +815,7 @@ void IHyprLayout::moveActiveWindow(const Vector2D& delta, PHLWINDOW pWindow) { PWINDOW->setAnimationsToMove(); + PWINDOW->m_vPosition += delta; *PWINDOW->m_vRealPosition = PWINDOW->m_vRealPosition->goal() + delta; g_pHyprRenderer->damageWindow(PWINDOW); |
